Add a CI step to test ssh access (#5) #18
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: 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 ssh-keygen -t rsa -f /home/admin/.ssh/id_rsa -N "" | |
docker exec slurm-frontend cp /home/admin/.ssh/id_rsa.pub /home/admin/.ssh/authorized_keys | |
docker exec slurm-frontend timeout 1s ssh slurmnode1 hostname | |
docker exec slurm-frontend rm -f ~/.ssh/id_rsa | |
docker exec slurm-frontend rm -f ~/.ssh/id_rsa.pub | |
docker exec slurm-frontend rm -f ~/.ssh/authorized_keys | |
- | |
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 | |
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 | |
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 | |
file: ./node/Dockerfile | |
push: true | |
tags: noaagsl/slurm-node:latest | |
cache-from: type=gha | |
cache-to: type=gha,mode=max |