v0.38.0 #26
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build and Publish Docker Image | |
| on: | |
| release: | |
| types: [published] | |
| permissions: | |
| id-token: write | |
| attestations: write | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Extract version (without v) | |
| id: version | |
| run: | | |
| if [ "${{ github.event_name }}" = "release" ]; then | |
| # Extract version from release tag (remove any 'v' prefix) | |
| VERSION="${{ github.event.release.tag_name }}" | |
| VERSION=${VERSION#v} # Remove 'v' prefix if present | |
| else | |
| VERSION="${{ github.event.inputs.version }}" | |
| VERSION=${VERSION#v} # Remove 'v' prefix if present | |
| fi | |
| echo "version=$VERSION" >> $GITHUB_OUTPUT | |
| echo "Syncing version: $VERSION" | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Log in to Docker Hub | |
| uses: docker/login-action@v3 | |
| with: | |
| username: tragiccode | |
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |
| # Revisit this. We should probably be triggering this off of a tag event. | |
| # Which would automatically tag the image with the version and latest and allow us to remove | |
| # the manual 'tags' property below | |
| - name: Extract metadata (tags, labels) for Docker | |
| id: meta | |
| uses: docker/metadata-action@v5 | |
| with: | |
| images: tragiccode/busly-cli | |
| tags: | | |
| ${{ steps.version.outputs.version }} | |
| latest | |
| - name: Build and push Docker image | |
| id: push | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| file: ./src/BuslyCLI.Console/Dockerfile | |
| build-args: | | |
| APP_VERSION=${{ steps.version.outputs.version }} | |
| push: true | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| - name: Generate artifact attestation | |
| uses: actions/attest-build-provenance@v3 | |
| with: | |
| subject-name: index.docker.io/tragiccode/busly-cli | |
| subject-digest: ${{ steps.push.outputs.digest }} | |
| push-to-registry: true |