Skip to content

write-all is required to write to package (#140) #129

write-all is required to write to package (#140)

write-all is required to write to package (#140) #129

Workflow file for this run

name: Web Image
on:
# We only have so many github minutes, so we use a manual trigger
# instead of automatically building on every push in a pull request.
workflow_dispatch:
# Trigger on all pushes to main.
push:
branches:
- main
jobs:
prepare:
runs-on: ubuntu-latest
steps:
- id: repository_name
run: |
lowercase_repo_name=$(echo "${{ github.event.repository.name }}" | tr '[:upper:]' '[:lower:]')
echo "lowercase_repo_name=${lowercase_repo_name}" >> $GITHUB_OUTPUT
- id: repository_owner
run: |
lowercase_repo_owner=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')
echo "lowercase_repo_owner=${lowercase_repo_owner}" >> $GITHUB_OUTPUT
outputs:
lowercase_repo_name: ${{ steps.repository_name.outputs.lowercase_repo_name }}
lowercase_repo_owner: ${{ steps.repository_owner.outputs.lowercase_repo_owner }}
build-web-client:
permissions: write-all
runs-on: ubuntu-latest
needs: prepare
steps:
- uses: actions/checkout@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build ${{ needs.prepare.outputs.lowercase_repo_name }}-web-client
run: |
docker build --platform linux/amd64 -t ghcr.io/${{ needs.prepare.outputs.lowercase_repo_owner }}/${{ needs.prepare.outputs.lowercase_repo_name }}-web-client:${{ github.head_ref || github.ref_name }} -f docker/web/Dockerfile_web-client --cache-from ghcr.io/${{ needs.prepare.outputs.lowercase_repo_owner }}/${{ needs.prepare.outputs.lowercase_repo_name }}-web-client:main,ghcr.io/${{ needs.prepare.outputs.lowercase_repo_owner }}/${{ needs.prepare.outputs.lowercase_repo_name }}-web-client:${{ github.head_ref || github.ref_name }} --build-arg BUILDKIT_INLINE_CACHE=1 .
docker push ghcr.io/${{ needs.prepare.outputs.lowercase_repo_owner }}/${{ needs.prepare.outputs.lowercase_repo_name }}-web-client:${{ github.head_ref || github.ref_name }}
build-web-server:
permissions: write-all
runs-on: ubuntu-latest
needs: prepare
steps:
- uses: actions/checkout@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build ${{ needs.prepare.outputs.lowercase_repo_name }}-web-server
run: |
docker build --platform linux/amd64 -t ghcr.io/${{ needs.prepare.outputs.lowercase_repo_owner }}/${{ needs.prepare.outputs.lowercase_repo_name }}-web-server:${{ github.head_ref || github.ref_name }} -f docker/web/Dockerfile_web-server --cache-from ghcr.io/${{ needs.prepare.outputs.lowercase_repo_owner }}/${{ needs.prepare.outputs.lowercase_repo_name }}-web-server:main,ghcr.io/${{ needs.prepare.outputs.lowercase_repo_owner }}/${{ needs.prepare.outputs.lowercase_repo_name }}-web-server:${{ github.head_ref || github.ref_name }} --build-arg BUILDKIT_INLINE_CACHE=1 .
docker push ghcr.io/${{ needs.prepare.outputs.lowercase_repo_owner }}/${{ needs.prepare.outputs.lowercase_repo_name }}-web-server:${{ github.head_ref || github.ref_name }}
build-web-image:
permissions: write-all
needs: [prepare, build-web-client, build-web-server]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build ${{ needs.prepare.outputs.lowercase_repo_name }}-web-image
run: |
docker build --platform linux/amd64 -t ghcr.io/${{ needs.prepare.outputs.lowercase_repo_owner }}/${{ needs.prepare.outputs.lowercase_repo_name }}-web:${{ github.head_ref || github.ref_name }} -f docker/web/Dockerfile_web --build-arg NAMESPACE=ghcr.io/${{ needs.prepare.outputs.lowercase_repo_owner }} --build-arg IMAGE_PREFIX=${{ needs.prepare.outputs.lowercase_repo_name }} --build-arg TAG=${{ github.head_ref || github.ref_name }} --cache-from ghcr.io/${{ needs.prepare.outputs.lowercase_repo_owner }}/${{ needs.prepare.outputs.lowercase_repo_name }}-web:main,ghcr.io/${{ needs.prepare.outputs.lowercase_repo_owner }}/${{ needs.prepare.outputs.lowercase_repo_name }}-web:${{ github.head_ref || github.ref_name }} --build-arg BUILDKIT_INLINE_CACHE=1 .
docker push ghcr.io/${{ needs.prepare.outputs.lowercase_repo_owner }}/${{ needs.prepare.outputs.lowercase_repo_name }}-web:${{ github.head_ref || github.ref_name }}