Add multi-platform build for images pushed to registry (#7) #22
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: Docker Slurm | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
workflow_dispatch: | |
jobs: | |
docker_build: | |
name: Docker Build | |
runs-on: ubuntu-20.04 | |
steps: | |
- | |
name: Checkout Repository | |
uses: actions/checkout@v3 | |
- | |
name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- | |
name: Build and start containers | |
run: docker-compose -f docker-compose.yml up --build -d | |
- | |
name: Check cluster logs | |
run: docker-compose -f docker-compose.yml logs | |
- | |
name: Check status of the cluster containers | |
run: docker-compose -f docker-compose.yml ps | |
- | |
name: Check status of Slurm | |
run: docker exec slurm-frontend sinfo | |
- | |
name: Run a Slurm job | |
run: docker exec slurm-frontend srun hostname | |
- | |
name: Test ssh access to Slurm compute nodes | |
run: | | |
docker exec slurm-frontend timeout 1s ssh slurmnode1 hostname | |
docker exec slurm-frontend timeout 1s ssh slurmnode2 hostname | |
docker exec slurm-frontend timeout 1s ssh slurmnode3 hostname | |
- | |
name: Shut down Slurm cluster containers | |
run: docker-compose -f docker-compose.yml down | |
- | |
name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- | |
name: Login to Docker Hub | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- | |
name: Build and push frontend | |
uses: docker/build-push-action@v4 | |
with: | |
context: ./frontend | |
platforms: linux/amd64,linux/arm64 | |
file: ./frontend/Dockerfile | |
push: true | |
tags: noaagsl/slurm-frontend:latest | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
- | |
name: Build and push master | |
uses: docker/build-push-action@v4 | |
with: | |
context: ./master | |
platforms: linux/amd64,linux/arm64 | |
file: ./master/Dockerfile | |
push: true | |
tags: noaagsl/slurm-master:latest | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
- | |
name: Build and push node | |
uses: docker/build-push-action@v4 | |
with: | |
context: ./node | |
platforms: linux/amd64,linux/arm64 | |
file: ./node/Dockerfile | |
push: true | |
tags: noaagsl/slurm-node:latest | |
cache-from: type=gha | |
cache-to: type=gha,mode=max |