Store complement-synapse image in ghcr.io #42
This file contains 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
# This task does not run complement tests, see tests.yaml instead. | |
# This task does not build docker images for synapse for use on docker hub, see docker.yaml instead | |
name: Store complement-synapse image in ghcr.io | |
on: | |
push: | |
branches: [ "master" ] | |
schedule: | |
- cron: '0 5 * * *' | |
workflow_dispatch: | |
inputs: | |
branch: | |
required: true | |
default: 'develop' | |
type: choice | |
options: | |
- develop | |
- master | |
# Only run this action once per pull request/branch; restart if a new commit arrives. | |
# C.f. https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#concurrency | |
# and https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#github-context | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
name: Build and push complement image | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
packages: write | |
steps: | |
- name: Checkout specific branch (debug build) | |
uses: actions/checkout@v4 | |
if: github.event_name == 'workflow_dispatch' | |
with: | |
ref: ${{ inputs.branch }} | |
- name: Checkout clean copy of develop (scheduled build) | |
uses: actions/checkout@v4 | |
if: github.event_name == 'schedule' | |
with: | |
ref: develop | |
- name: Checkout clean copy of master (on-push) | |
uses: actions/checkout@v4 | |
if: github.event_name == 'push' | |
with: | |
ref: master | |
- name: Login to registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Work out labels for complement image | |
id: meta | |
uses: docker/metadata-action@v5 | |
with: | |
images: ghcr.io/${{ github.repository }}/complement-synapse | |
tags: | | |
type=schedule,pattern=nightly,enable=${{ github.event_name == 'schedule'}} | |
type=raw,value=develop,enable=${{ github.event_name == 'schedule' || inputs.branch == 'develop' }} | |
type=raw,value=latest,enable=${{ github.event_name == 'push' || inputs.branch == 'master' }} | |
type=sha,format=long | |
- name: Run scripts-dev/complement.sh to generate complement-synapse:latest image. | |
run: scripts-dev/complement.sh --build-only | |
- name: Tag and push generated image | |
run: | | |
for TAG in ${{ join(fromJson(steps.meta.outputs.json).tags, ' ') }}; do | |
echo "tag and push $TAG" | |
docker tag complement-synapse $TAG | |
docker push $TAG | |
done |