name: "CI" on: [push, pull_request] jobs: build: runs-on: ubuntu-latest strategy: fail-fast: true matrix: service: ["api", "tasks", "websocket"] steps: - uses: actions/checkout@v2 - name: Log in to the Container registry uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - run: docker buildx create --use --driver=docker-container - run: | docker buildx build . \ --build-arg SERVICE=${{ matrix.service }} \ -t ghcr.io/${{ github.repository }}/${{ matrix.service }}:${{ github.sha }} \ --cache-to type=gha,scope=$GITHUB_REF_NAME-${{ matrix.service }} \ --cache-from type=gha,scope=$GITHUB_REF_NAME-${{ matrix.service }} - run: | docker tag ghcr.io/${{ github.repository }}/${{ matrix.service }}:${{ github.sha }} \ ghcr.io/${{ github.repository }}/${{ matrix.service }}:latest if: github.ref == 'refs/heads/main' - run: | docker push ghcr.io/${{ github.repository }}/${{ matrix.service }}