Code fix #196
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 & publish container images | |
| on: | |
| workflow_dispatch: | |
| schedule: | |
| - cron: "0 0 * * SAT" # every saturday at midnight | |
| push: | |
| branches: | |
| - "main" | |
| env: | |
| REGISTRY: ghcr.io | |
| jobs: | |
| build-image: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - context: ./ | |
| dockerfile: ./apps/web/Dockerfile | |
| image: ghcr.io/stever/zxcode | |
| - context: ./apps/proxy/ | |
| dockerfile: ./apps/proxy/Dockerfile | |
| image: ghcr.io/stever/zxcode-proxy | |
| - context: ./apps/auth/ | |
| dockerfile: ./apps/auth/Dockerfile | |
| image: ghcr.io/stever/zxcode-auth | |
| # Boriel ZX Basic compile API (migrated from the standalone | |
| # zxcode-api-zxbasic repo). Keeps the original image name so the | |
| # deploy is unchanged; needs this repo's Actions write access to the | |
| # stever/zxcode-api-zxbasic GHCR package. | |
| - context: ./apps/zxbasic/ | |
| dockerfile: ./apps/zxbasic/Dockerfile | |
| image: ghcr.io/stever/zxcode-api-zxbasic | |
| - context: ./ | |
| dockerfile: ./apps/gif-service/Dockerfile | |
| image: ghcr.io/stever/zxcode-gif-service | |
| - context: ./ | |
| dockerfile: ./apps/mastodon-bot/Dockerfile | |
| image: ghcr.io/stever/zxcode-mastodon-bot | |
| # zxplay.org. Keeps the original ghcr.io/stever/zxplay image name so the | |
| # existing deploy is unchanged; requires granting this repo Actions | |
| # write access to the stever/zxplay package in GHCR. | |
| - context: ./ | |
| dockerfile: ./apps/play/Dockerfile | |
| image: ghcr.io/stever/zxplay | |
| permissions: | |
| contents: read | |
| packages: write | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v3 | |
| - name: Extract metadata (tags, labels) for Docker | |
| id: meta | |
| uses: docker/metadata-action@v4 | |
| with: | |
| images: ${{ matrix.image }} | |
| tags: | | |
| # Apply 'latest' tag on main branch. | |
| # NOTE: This behaviour is used by default only on the 'master' branch. Otherwise branch name is used! | |
| type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') }} | |
| - name: Log in to the Container registry | |
| uses: docker/login-action@v2 | |
| with: | |
| registry: ${{ env.REGISTRY }} | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build and push Docker image | |
| uses: docker/build-push-action@v3 | |
| with: | |
| context: ${{ matrix.context }} | |
| file: ${{ matrix.dockerfile }} | |
| push: true | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} |