Added zxplay container build instruction #188
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 | |
| - 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 }} |