diff --git a/.github/workflows/apptainer.yaml b/.github/workflows/apptainer.yaml new file mode 100644 index 00000000..f3c228fe --- /dev/null +++ b/.github/workflows/apptainer.yaml @@ -0,0 +1,49 @@ +name: apptainer + +on: + push: + branches: + - apptainer + +env: + VERSION: '1.4.1.9006' # versioned by bump2version +jobs: + docker2apptainer: + name: Docker2apptainer + runs-on: ubuntu-latest + defaults: + run: + shell: bash -l {0} + steps: + - name: Code checkout + uses: actions/checkout@v4 + with: + ref: v${{ env.VERSION }} + - name: 🏰 QEMU setup + uses: docker/setup-qemu-action@v3 + - name: 🏯 Buildx setup + uses: docker/setup-buildx-action@v3 + - name: DockerHub login + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: 🐳 Docker img build and push to DockerHub + uses: docker/build-push-action@v5 + with: + context: . # yes, dot + push: true + load: true + platforms: linux/amd64 + tags: | + sigven/pcgr:${{ env.VERSION }} + + - name: Apptainer setup + uses: eWaterCycle/setup-apptainer@v2 + + - name: Apptainer build + run: | + docker image ls -a + docker save sigven/pcgr:${VERSION} -o pcgr_${VERSION}.tar + apptainer build pcgr_${VERSION}.sif docker-archive://pcgr_${VERSION}.tar + apptainer push pcgr_${VERSION}.sif oras://ghcr.io/${GITHUB_REPOSITORY}:${VERSION}