PKG Apptainer Feel++ [ ubuntu/jammy ] #6
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: Feelpp PKG Apptainer | |
run-name: "PKG Apptainer Feel++ [ ${{ inputs.flavor }}/${{ inputs.dist }} ]" | |
on: | |
workflow_dispatch: | |
inputs: | |
flavor: | |
description: 'Flavor to build' | |
required: true | |
default: 'ubuntu' | |
type: choice | |
options: | |
- 'ubuntu' | |
- 'debian' | |
dist: | |
description: 'Distribution to build' | |
required: true | |
default: 'jammy' | |
type: choice | |
options: | |
- 'jammy' | |
- 'focal' | |
- 'noble' | |
- 'bullseye' | |
- 'bookworm' | |
- 'testing' | |
- 'sid' | |
version: | |
description: 'Version of Feel++ packages' | |
required: false | |
type: string | |
default: '' | |
apptainer: | |
description: 'Build apptainer image' | |
required: false | |
default: '1.3.3' | |
type: choice | |
options: | |
- '1.2.2' | |
- '1.3.3' | |
- '1.3.5' | |
- 'false' | |
docker: | |
description: 'docker image' | |
required: false | |
type: string | |
default: 'ghcr.io/feelpp/feelpp' | |
docker-dev: | |
description: 'docker dev image' | |
required: false | |
type: string | |
default: 'ghcr.io/feelpp/feelpp-dev' | |
parallel: | |
description: 'Number of parallel jobs' | |
required: false | |
default: "20" | |
type: string | |
skip: | |
description: 'Skip build' | |
required: false | |
default: "" | |
type: string | |
workflow_call: | |
inputs: | |
flavor: | |
description: 'Flavor of the distribution' | |
required: true | |
type: string | |
default: "ubuntu" | |
dist: | |
description: 'Name of the distribution' | |
required: true | |
type: string | |
default: "jammy" | |
version: | |
description: 'Version of Feel++ packages' | |
required: true | |
type: string | |
parallel: | |
description: 'Number of parallel jobs' | |
required: false | |
type: string | |
default: "20" | |
docker: | |
description: 'docker image' | |
required: false | |
type: string | |
default: 'ghcr.io/feelpp/feelpp' | |
docker-dev: | |
description: 'docker dev image' | |
required: false | |
type: string | |
default: 'ghcr.io/feelpp/feelpp-dev' | |
apptainer: | |
description: 'Build apptainer image' | |
required: false | |
type: string | |
default: "1.3.5" | |
skip: | |
description: 'Skip apptainer build' | |
required: false | |
type: string | |
default: "" | |
continue-on-error: | |
description: 'Continue on error' | |
required: false | |
type: string | |
default: "false" | |
jobs: | |
version: | |
uses: ./.github/workflows/version.yml | |
with: | |
continue-on-error: "false" | |
secrets: inherit | |
apptainer: | |
if: ${{ !contains( inputs.skip, 'skip apptainer' ) && inputs.apptainer != 'false'}} | |
runs-on: self-apptainer | |
needs: version | |
name: Build and Push apptainer image | |
continue-on-error: ${{ inputs.continue-on-error == 'true' }} | |
env: | |
version: ${{ inputs.version || needs.version.outputs.version }} | |
docker: "${{ inputs.docker }}:v${{ inputs.version || needs.version.outputs.version }}-${{ inputs.dist }}" | |
sif: "${{ inputs.docker }}:v${{ inputs.version || needs.version.outputs.version }}-${{ inputs.dist }}-sif" | |
apptainer: /opt/apptainer/v${{ inputs.apptainer }}/apptainer/bin/apptainer | |
steps: | |
- | |
name: Login to GitHub Container Registry | |
run: | | |
${{ env.apptainer }} remote login -u ${{ github.repository_owner }} -p ${{ secrets.CR_PAT }} oras://ghcr.io | |
- | |
name: Get docker image ${{ env.docker }} | |
run: | | |
echo "Using docker image: ${{ env.docker }}" | |
${{ env.apptainer }} pull -F feelpp.sif docker://${{ env.docker }} | |
${{ env.apptainer }} inspect feelpp.sif | |
ls -lrt | |
- | |
name: Push apptainer image ${{ env.sif }} to ghcr.io | |
run: | | |
echo "Using sif: ${{ env.sif }}" | |
${{ env.apptainer }} push feelpp.sif oras://${{ env.sif }} | |
# - | |
# name: Trigger feelpp:${{ needs.docker.outputs.tag }} | |
# uses: peter-evans/repository-dispatch@v3 | |
# with: | |
# token: ${{ secrets.CR_PAT }} | |
# repository: feelpp/feelpp | |
# event-type: feelpp-apptainer-updated | |
# client-payload: '{"sif":"${{ env.sif }}"}' |