name: build on: workflow_dispatch: push: branches: - 'master' tags: - 'v*' pull_request: branches: - 'master' env: REPO_SLUG_ORIGIN: "moby/buildkit:master" CACHEKEY_BINARIES: "binaries" PLATFORMS: "linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/s390x,linux/ppc64le" jobs: base: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Cache ${{ env.CACHEKEY_BINARIES }} uses: actions/cache@v2 with: path: /tmp/.buildx-cache/${{ env.CACHEKEY_BINARIES }} key: ${{ runner.os }}-buildx-${{ env.CACHEKEY_BINARIES }}-${{ github.sha }} restore-keys: | ${{ runner.os }}-buildx-${{ env.CACHEKEY_BINARIES }}- - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 with: driver-opts: image=${{ env.REPO_SLUG_ORIGIN }} - name: Build ${{ env.CACHEKEY_BINARIES }} run: | ./hack/build_ci_first_pass binaries env: CACHEDIR_FROM: /tmp/.buildx-cache/${{ env.CACHEKEY_BINARIES }} CACHEDIR_TO: /tmp/.buildx-cache/${{ env.CACHEKEY_BINARIES }}-new - # FIXME: Temp fix for https://github.com/moby/buildkit/issues/1850 name: Move cache run: | rm -rf /tmp/.buildx-cache/${{ env.CACHEKEY_BINARIES }} mv /tmp/.buildx-cache/${{ env.CACHEKEY_BINARIES }}-new /tmp/.buildx-cache/${{ env.CACHEKEY_BINARIES }} test: runs-on: ubuntu-latest needs: [base] steps: - name: Checkout uses: actions/checkout@v2 - name: Cache ${{ env.CACHEKEY_BINARIES }} uses: actions/cache@v2 with: path: /tmp/.buildx-cache/${{ env.CACHEKEY_BINARIES }} key: ${{ runner.os }}-buildx-${{ env.CACHEKEY_BINARIES }}-${{ github.sha }} restore-keys: | ${{ runner.os }}-buildx-${{ env.CACHEKEY_BINARIES }}- - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 with: driver-opts: image=${{ env.REPO_SLUG_ORIGIN }} - name: Test run: | make test env: TEST_COVERAGE: 1 TESTFLAGS: -v --parallel=6 --timeout=20m CACHEDIR_FROM: /tmp/.buildx-cache/${{ env.CACHEKEY_BINARIES }} - name: Send to Codecov uses: codecov/codecov-action@v1 with: file: ./coverage/coverage.txt cross: runs-on: ubuntu-latest needs: [base] steps: - name: Checkout uses: actions/checkout@v2 - name: Cache ${{ env.CACHEKEY_BINARIES }} uses: actions/cache@v2 with: path: /tmp/.buildx-cache/${{ env.CACHEKEY_BINARIES }} key: ${{ runner.os }}-buildx-${{ env.CACHEKEY_BINARIES }}-${{ github.sha }} restore-keys: | ${{ runner.os }}-buildx-${{ env.CACHEKEY_BINARIES }}- - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 with: driver-opts: image=${{ env.REPO_SLUG_ORIGIN }} - name: Cross run: | make cross env: TARGETPLATFORM: ${{ env.PLATFORMS }},darwin/amd64,windows/amd64 CACHEDIR_FROM: /tmp/.buildx-cache/${{ env.CACHEKEY_BINARIES }}