[pre-commit.ci] pre-commit autoupdate #248
Workflow file for this run
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
--- | |
name: Build, test and push 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 | |
jobs: | |
amd64-base: | |
uses: ./.github/workflows/docker-build-test-upload.yml | |
with: | |
image: base | |
architecture: amd64 | |
runsOn: ubuntu-latest | |
amd64-base-with-services: | |
uses: ./.github/workflows/docker-build-test-upload.yml | |
with: | |
image: base-with-services | |
architecture: amd64 | |
runsOn: ubuntu-latest | |
needs: [amd64-base] | |
amd64-lab: | |
uses: ./.github/workflows/docker-build-test-upload.yml | |
with: | |
image: lab | |
architecture: amd64 | |
runsOn: ubuntu-latest | |
needs: [amd64-base] | |
amd64-full-stack: | |
uses: ./.github/workflows/docker-build-test-upload.yml | |
with: | |
image: full-stack | |
architecture: amd64 | |
runsOn: ubuntu-latest | |
needs: [amd64-base-with-services, amd64-lab] | |
arm64-base: | |
uses: ./.github/workflows/docker-build-test-upload.yml | |
with: | |
image: base | |
architecture: arm64 | |
runsOn: ARM64 | |
arm64-lab: | |
uses: ./.github/workflows/docker-build-test-upload.yml | |
with: | |
image: lab | |
architecture: arm64 | |
runsOn: ARM64 | |
needs: [arm64-base] | |
arm64-base-with-services: | |
uses: ./.github/workflows/docker-build-test-upload.yml | |
with: | |
image: base-with-services | |
architecture: arm64 | |
runsOn: ARM64 | |
needs: [arm64-base] | |
arm64-full-stack: | |
uses: ./.github/workflows/docker-build-test-upload.yml | |
with: | |
image: full-stack | |
architecture: arm64 | |
runsOn: ARM64 | |
needs: [arm64-base-with-services, arm64-lab] | |
amd64-push-ghcr: | |
if: always() | |
uses: ./.github/workflows/docker-push.yml | |
strategy: | |
matrix: | |
image: ["base", "base-with-services", "lab", "full-stack"] | |
with: | |
architecture: amd64 | |
image: ${{ matrix.image }} | |
registry: ghcr.io | |
secrets: | |
REGISTRY_USERNAME: ${{ github.actor }} | |
REGISTRY_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
needs: [amd64-base, amd64-base-with-services, amd64-lab, amd64-full-stack] | |
arm64-push-ghcr: | |
if: always() | |
uses: ./.github/workflows/docker-push.yml | |
strategy: | |
matrix: | |
image: ["base", "base-with-services", "lab", "full-stack"] | |
with: | |
architecture: arm64 | |
image: ${{ matrix.image }} | |
registry: ghcr.io | |
secrets: | |
REGISTRY_USERNAME: ${{ github.actor }} | |
REGISTRY_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
needs: [arm64-base, arm64-base-with-services, arm64-lab, arm64-full-stack] | |
merge-tags-ghcr: | |
if: always() | |
uses: ./.github/workflows/docker-merge-tags.yml | |
strategy: | |
matrix: | |
image: ["base", "base-with-services", "lab", "full-stack"] | |
with: | |
image: ${{ matrix.image }} | |
registry: ghcr.io | |
secrets: | |
REGISTRY_USERNAME: ${{ github.actor }} | |
REGISTRY_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
needs: [amd64-push-ghcr, arm64-push-ghcr] | |
amd64-push-dockerhub: | |
if: github.repository == 'aiidalab/aiidalab-docker-stack' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) | |
uses: ./.github/workflows/docker-push.yml | |
strategy: | |
matrix: | |
image: ["base", "base-with-services", "lab", "full-stack"] | |
with: | |
architecture: amd64 | |
image: ${{ matrix.image }} | |
registry: docker.io | |
secrets: | |
REGISTRY_USERNAME: ${{ secrets.DOCKER_USERNAME }} | |
REGISTRY_TOKEN: ${{ secrets.DOCKER_PASSWORD }} | |
needs: [amd64-base, amd64-base-with-services, amd64-lab, amd64-full-stack] | |
arm64-push-dockerhub: | |
if: github.repository == 'aiidalab/aiidalab-docker-stack' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) | |
uses: ./.github/workflows/docker-push.yml | |
strategy: | |
matrix: | |
image: ["base", "base-with-services", "lab", "full-stack"] | |
with: | |
architecture: arm64 | |
image: ${{ matrix.image }} | |
registry: docker.io | |
secrets: | |
REGISTRY_USERNAME: ${{ secrets.DOCKER_USERNAME }} | |
REGISTRY_TOKEN: ${{ secrets.DOCKER_PASSWORD }} | |
needs: [arm64-base, arm64-base-with-services, arm64-lab, arm64-full-stack] | |
merge-tags-dockerhub: | |
if: github.repository == 'aiidalab/aiidalab-docker-stack' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) | |
uses: ./.github/workflows/docker-merge-tags.yml | |
strategy: | |
matrix: | |
image: ["base", "base-with-services", "lab", "full-stack"] | |
with: | |
image: ${{ matrix.image }} | |
registry: docker.io | |
secrets: | |
REGISTRY_USERNAME: ${{ secrets.DOCKER_USERNAME }} | |
REGISTRY_TOKEN: ${{ secrets.DOCKER_PASSWORD }} | |
needs: [amd64-push-dockerhub, arm64-push-dockerhub] | |
release: | |
runs-on: ubuntu-latest | |
needs: [merge-tags-ghcr, merge-tags-dockerhub] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Create release | |
uses: softprops/action-gh-release@v1 | |
with: | |
generate_release_notes: true | |
if: github.repository == 'aiidalab/aiidalab-docker-stack' && startsWith(github.ref, 'refs/tags/v') |