Build and Push Docker Images #74
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 Push Docker Images | |
| on: | |
| push: | |
| tags: | |
| - "v*" | |
| workflow_dispatch: | |
| jobs: | |
| build-and-push-bun: | |
| name: Build and Push Bun Image | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| packages: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| - name: Login to GitHub Container Registry | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.repository_owner }} | |
| password: ${{ github.token }} | |
| - name: Generate Docker tags (Bun) | |
| id: tags-bun | |
| run: | | |
| TAGS=$(bun scripts/gen-container-img-tags.ts bun) | |
| echo "tags=$TAGS" >> $GITHUB_OUTPUT | |
| - name: Build and push Docker image (Bun) | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| push: true | |
| tags: ${{ steps.tags-bun.outputs.tags }} | |
| # platforms: linux/amd64,linux/arm64 | |
| cache-from: type=gha,scope=bun | |
| cache-to: type=gha,mode=max,scope=bun | |
| build-and-push-node: | |
| name: Build and Push Node Image | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| packages: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| - name: Login to GitHub Container Registry | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.repository_owner }} | |
| password: ${{ github.token }} | |
| - name: Generate Docker tags (Node) | |
| id: tags-node | |
| run: | | |
| TAGS=$(bun scripts/gen-container-img-tags.ts node) | |
| echo "tags=$TAGS" >> $GITHUB_OUTPUT | |
| - name: Build and push Docker image (Node) | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| file: ./Dockerfile.node | |
| push: true | |
| tags: ${{ steps.tags-node.outputs.tags }} | |
| # platforms: linux/amd64,linux/arm64 | |
| cache-from: type=gha,scope=node | |
| cache-to: type=gha,mode=max,scope=node | |
| release: | |
| name: Create GitHub Release | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| needs: [build-and-push-bun, build-and-push-node] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| body_path: RELEASE_NOTES.md | |
| prerelease: ${{ contains(github.ref_name, '-') }} |