Skip to content

Refactor CI workflow #91

Refactor CI workflow

Refactor CI workflow #91

Workflow file for this run

---
name: Docker Images
on:
pull_request:
push:
branches:
- main
tags:
- "v*"
workflow_dispatch:
# https://docs.github.com/en/actions/using-jobs/using-concurrency
concurrency:
# only cancel in-progress jobs or runs for the current workflow - matches against branch & tags
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
FORCE_COLOR: 1
jobs:
build:
uses: ./.github/workflows/build.yml
with:
runsOn: ubuntu-22.04
test-amd64:
needs: build
strategy:
fail-fast: false
matrix:
# NOTE: amd64 full-stack image is tested during build step
target: ["base", "lab", "base-with-services"]
uses: ./.github/workflows/test.yml
with:
runsOn: ubuntu-22.04
images: ${{ needs.build.outputs.images }}
target: ${{ matrix.target }}
integration: false
# To save self-hosted runner resources, we're only testing full-stack image
test-arm64:
needs: build
uses: ./.github/workflows/test.yml
with:
runsOn: ARM64
images: ${{ needs.build.outputs.images }}
target: full-stack
integration: false
test-integration:
needs: build
strategy:
fail-fast: false
matrix:
runner: [ubuntu-22.04, ARM64]
uses: ./.github/workflows/test.yml
with:
runsOn: ${{ matrix.runner }}
images: ${{ needs.build.outputs.images }}
target: full-stack
integration: true
publish-ghcr:
needs: [build, test-amd64, test-arm64]
uses: ./.github/workflows/publish.yml
with:
runsOn: ubuntu-22.04
images: ${{ needs.build.outputs.images }}
registry: ghcr.io
secrets: inherit
publish-dockerhub:
if: >-
github.repository == 'aiidalab/aiidalab-docker-stack'
&& (github.ref_type == 'tag' || github.ref_name == 'main')
needs: [build, publish-ghcr]
uses: ./.github/workflows/publish.yml
with:
runsOn: ubuntu-22.04
images: ${{ needs.build.outputs.images }}
registry: docker.io
secrets: inherit