Change to self-hosted runner in PSI for ARM64 #161
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: | |
paths: | |
- ".github/workflows/docker.yml" | |
# We use local reusable workflows to make architecture clean an simple | |
# https://docs.github.com/en/actions/using-workflows/reusing-workflows | |
- ".github/workflows/docker-build-test-upload.yml" | |
- ".github/workflows/docker-merge-tags.yml" | |
- ".github/workflows/docker-push.yml" | |
# We use local composite actions to combine multiple workflow steps within one action | |
# https://docs.github.com/en/actions/creating-actions/about-custom-actions#composite-actions | |
- ".github/actions/create-dev-env/action.yml" | |
- ".github/actions/load-image/action.yml" | |
- "stack/base/**" | |
- "stack/base-with-services/**" | |
- "stack/lab/**" | |
- "stack/full-stack/**" | |
- "build.json" | |
- "docker-bake.hcl" | |
- "tests/**" | |
- "requirements-dev.txt" | |
push: | |
branches: | |
- main | |
tags: | |
- "v*" | |
paths: | |
- ".github/workflows/docker.yml" | |
# We use local reusable workflows to make architecture clean an simple | |
# https://docs.github.com/en/actions/using-workflows/reusing-workflows | |
- ".github/workflows/docker-build-test-upload.yml" | |
- ".github/workflows/docker-merge-tags.yml" | |
- ".github/workflows/docker-push.yml" | |
# We use local composite actions to combine multiple workflow steps within one action | |
# https://docs.github.com/en/actions/creating-actions/about-custom-actions#composite-actions | |
- ".github/actions/create-dev-env/action.yml" | |
- ".github/actions/load-image/action.yml" | |
- "stack/base/**" | |
- "stack/base-with-services/**" | |
- "stack/lab/**" | |
- "stack/full-stack/**" | |
- "build.json" | |
- "docker-bake.hcl" | |
- "tests/**" | |
- "requirements-dev.txt" | |
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] | |
amd64-qe: | |
uses: ./.github/workflows/docker-build-test-upload.yml | |
with: | |
image: qe | |
architecture: amd64 | |
runsOn: ubuntu-latest | |
needs: [amd64-full-stack] | |
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] | |
arm64-qe: | |
uses: ./.github/workflows/docker-build-test-upload.yml | |
with: | |
image: qe | |
architecture: arm64 | |
runsOn: ARM64 | |
needs: [arm64-full-stack] | |
amd64-push-ghcr: | |
uses: ./.github/workflows/docker-push.yml | |
strategy: | |
matrix: | |
image: ["base", "base-with-services", "lab", "full-stack", "qe"] | |
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, amd64-qe] | |
arm64-push-ghcr: | |
uses: ./.github/workflows/docker-push.yml | |
strategy: | |
matrix: | |
image: ["base", "base-with-services", "lab", "full-stack", "qe"] | |
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, arm64-qe] | |
merge-tags-ghcr: | |
uses: ./.github/workflows/docker-merge-tags.yml | |
strategy: | |
matrix: | |
image: ["base", "base-with-services", "lab", "full-stack", "qe"] | |
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", "qe"] | |
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, amd64-qe] | |
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", "qe"] | |
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, arm64-qe] | |
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", "qe"] | |
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@v3 | |
- 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') |