name: build on: workflow_dispatch: push: branches: - 'master' - 'v[0-9]*' tags: - 'v*' pull_request: branches: - 'master' - 'v[0-9]*' env: REPO_SLUG: "docker/buildx-bin" RELEASE_OUT: "./release-out" jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 with: version: latest - name: Test run: | make test - name: Send to Codecov uses: codecov/codecov-action@v3 with: file: ./coverage/coverage.txt - name: Expose GitHub Runtime uses: crazy-max/ghaction-github-runtime@906832f62b7baa936e3fbef72b029308af505ee7 - name: Build binaries run: | make release env: CACHE_FROM: type=gha,scope=release CACHE_TO: type=gha,scope=release - name: Upload artifacts uses: actions/upload-artifact@v3 with: name: buildx path: ${{ env.RELEASE_OUT }}/* if-no-files-found: error - name: Docker meta id: meta uses: docker/metadata-action@v4 with: images: | ${{ env.REPO_SLUG }} tags: | type=ref,event=branch type=ref,event=pr type=semver,pattern={{version}} bake-target: meta-helper - name: Login to DockerHub if: github.event_name != 'pull_request' uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push image uses: docker/bake-action@v2 with: files: | ./docker-bake.hcl ${{ steps.meta.outputs.bake-file }} targets: image-cross push: ${{ github.event_name != 'pull_request' }} - name: GitHub Release if: startsWith(github.ref, 'refs/tags/v') uses: softprops/action-gh-release@1e07f4398721186383de40550babbdf2b84acfc5 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: draft: true files: ${{ env.RELEASE_OUT }}/* buildkit-edge: runs-on: ubuntu-latest continue-on-error: true steps: - name: Checkout uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 with: version: latest driver-opts: image=moby/buildkit:master buildkitd-flags: --debug - # Just run a bake target to check eveything runs fine name: Build uses: docker/bake-action@v2 with: targets: binaries-cross