1515 strategy :
1616 fail-fast : false
1717 matrix :
18- ubuntu : [noble]
1918 platform : [linux/amd64]
2019 branch : [devel, release]
20+ base :
21+ - {image: "ubuntu:noble", name: "noble"}
22+ - {image: "nvcr.io/nvidia/cuda:12.9.0-devel-ubuntu24.04", name: "nvidia-noble"}
2123
2224 name : Build container images for GHCR
2325 runs-on : ubuntu-latest
3537 with :
3638 images : ghcr.io/${{ github.repository }}
3739 tags : |
38- type=raw,value=${{ matrix.ubuntu }}
40+ type=raw,value=${{ matrix.base.name }}
3941
4042 - name : Extract container name without tag
4143 id : vars
@@ -64,16 +66,18 @@ jobs:
6466 id : build
6567 uses : docker/build-push-action@v5
6668 with :
67- build-args : CYCLE=${{matrix.branch}}
69+ build-args : |
70+ CYCLE=${{matrix.branch}}
71+ BASE_IMAGE=${{matrix.base.image}}
6872 labels : ${{ steps.meta.outputs.labels }}
6973 outputs : type=image,name=${{ steps.vars.outputs.container }},push-by-digest=true,name-canonical=true,push=true
7074 platforms : ${{matrix.platform}}
7175 provenance : false
7276
7377 - name : Prepare Dockerfile to extract R version with emulator
7478 run : |
75- mkdir -p ${{matrix.ubuntu }}-${{matrix.platform}}
76- cat << "EOF" > ${{matrix.ubuntu }}-${{matrix.platform}}-r.Dockerfile
79+ mkdir -p ${{matrix.base.image }}-${{matrix.platform}}
80+ cat << "EOF" > ${{matrix.base.image }}-${{matrix.platform}}-r.Dockerfile
7781 FROM ${{ steps.vars.outputs.container }}@${{ steps.build.outputs.digest }} as extract
7882 USER root
7983 RUN mkdir /bioctmp && /bbs_r_start -e 'BiocManager::version()' | grep '\[1\]' | awk -F"'" '{print $2}' > /bioctmp/biocver && /bbs_r_start --slave -e 'cat(paste(version$major, version$minor, sep = "."))' > /bioctmp/rver && cat /etc/os-release > /bioctmp/os-release
@@ -84,26 +88,29 @@ jobs:
8488 - name : Build and push container image to ghcr
8589 uses : docker/build-push-action@v5
8690 with :
87- file : ${{matrix.ubuntu }}-${{matrix.platform}}-r.Dockerfile
91+ file : ${{matrix.base.image }}-${{matrix.platform}}-r.Dockerfile
8892 context : .
8993 push : false
9094 load : false
9195 provenance : false
92- outputs : type=tar,dest=${{matrix.ubuntu }}-${{matrix.platform}}/r.tar
96+ outputs : type=tar,dest=${{matrix.base.image }}-${{matrix.platform}}/r.tar
9397 tags : ${{ steps.meta.outputs.tags }}-r
9498 platforms : ${{ matrix.platform }}
9599
96100 - name : Extract rversion
97101 id : versions
98102 run : |
99- cd ${{matrix.ubuntu }}-${{matrix.platform}}
103+ cd ${{matrix.base.image }}-${{matrix.platform}}
100104 tar -xvf r.tar
101105 echo rver=$(cat rver) >> $GITHUB_OUTPUT
102106 echo biocver=$(cat biocver) >> $GITHUB_OUTPUT
103107 echo osver=$(awk -F= '/VERSION_ID/ {gsub("\"", "", $2); print $2}' os-release) >> $GITHUB_OUTPUT
104108 BASEPREFIX=""
105109 if [ '${{matrix.branch}}' == 'devel' ]; then BASEPREFIX="devel-"; fi
110+ NAMEDPREFIX="${BASEPREFIX}${{matrix.base.name}}"
111+ BASEPREFIX=$(echo "$NAMEDPREFIX" | sed 's/-\?jammy//')
106112 echo baseprefix=$BASEPREFIX >> $GITHUB_OUTPUT
113+ echo namedprefix=$NAMEDPREFIX >> $GITHUB_OUTPUT
107114
108115 - name : Export digest by ubuntu and r versions
109116 run : |
@@ -115,18 +122,18 @@ jobs:
115122 exit 1
116123 fi
117124 digest="${{ steps.build.outputs.digest }}"
118- mkdir -p /tmp/digests/${{steps.versions.outputs.baseprefix}}${{matrix.ubuntu }}
119- touch "/tmp/digests/${{steps.versions.outputs.baseprefix}}${{matrix.ubuntu }}/${digest#sha256:}"
120- mkdir -p /tmp/digests/${{steps.versions.outputs.baseprefix}}${{matrix.ubuntu }}-bioc-${{steps.versions.outputs.biocver}}
121- touch "/tmp/digests/${{steps.versions.outputs.baseprefix}}${{matrix.ubuntu }}-bioc-${{steps.versions.outputs.biocver}}/${digest#sha256:}"
122- mkdir -p /tmp/digests/${{steps.versions.outputs.baseprefix}}${{matrix.ubuntu }}-bioc-${{steps.versions.outputs.biocver}}-r-${{steps.versions.outputs.rver}}
123- touch "/tmp/digests/${{steps.versions.outputs.baseprefix}}${{matrix.ubuntu }}-bioc-${{steps.versions.outputs.biocver}}-r-${{steps.versions.outputs.rver}}/${digest#sha256:}"
124- mkdir -p /tmp/digests/${{steps.versions.outputs.baseprefix}}${{steps.versions.outputs.osver}}
125- touch "/tmp/digests/${{steps.versions.outputs.baseprefix}}${{steps.versions.outputs.osver}}/${digest#sha256:}"
126- mkdir -p /tmp/digests/${{steps.versions.outputs.baseprefix}}${{steps.versions.outputs.osver}}-bioc-${{steps.versions.outputs.biocver}}
127- touch "/tmp/digests/${{steps.versions.outputs.baseprefix}}${{steps.versions.outputs.osver}}-bioc-${{steps.versions.outputs.biocver}}/${digest#sha256:}"
128- mkdir -p /tmp/digests/${{steps.versions.outputs.baseprefix}}${{steps.versions.outputs.osver}}-bioc-${{steps.versions.outputs.biocver}}-r-${{steps.versions.outputs.rver}}
129- touch "/tmp/digests/${{steps.versions.outputs.baseprefix}}${{steps.versions.outputs.osver}}-bioc-${{steps.versions.outputs.biocver}}-r-${{steps.versions.outputs.rver}}/${digest#sha256:}"
125+ mkdir -p /tmp/digests/${{steps.versions.outputs.namedprefix }}
126+ touch "/tmp/digests/${{steps.versions.outputs.namedprefix }}/${digest#sha256:}"
127+ mkdir -p /tmp/digests/${{steps.versions.outputs.namedprefix }}-bioc-${{steps.versions.outputs.biocver}}
128+ touch "/tmp/digests/${{steps.versions.outputs.namedprefix }}-bioc-${{steps.versions.outputs.biocver}}/${digest#sha256:}"
129+ mkdir -p /tmp/digests/${{steps.versions.outputs.namedprefix }}-bioc-${{steps.versions.outputs.biocver}}-r-${{steps.versions.outputs.rver}}
130+ touch "/tmp/digests/${{steps.versions.outputs.namedprefix }}-bioc-${{steps.versions.outputs.biocver}}-r-${{steps.versions.outputs.rver}}/${digest#sha256:}"
131+ mkdir -p /tmp/digests/${{steps.versions.outputs.baseprefix}}- ${{steps.versions.outputs.osver}}
132+ touch "/tmp/digests/${{steps.versions.outputs.baseprefix}}- ${{steps.versions.outputs.osver}}/${digest#sha256:}"
133+ mkdir -p /tmp/digests/${{steps.versions.outputs.baseprefix}}- ${{steps.versions.outputs.osver}}-bioc-${{steps.versions.outputs.biocver}}
134+ touch "/tmp/digests/${{steps.versions.outputs.baseprefix}}- ${{steps.versions.outputs.osver}}-bioc-${{steps.versions.outputs.biocver}}/${digest#sha256:}"
135+ mkdir -p /tmp/digests/${{steps.versions.outputs.baseprefix}}- ${{steps.versions.outputs.osver}}-bioc-${{steps.versions.outputs.biocver}}-r-${{steps.versions.outputs.rver}}
136+ touch "/tmp/digests/${{steps.versions.outputs.baseprefix}}- ${{steps.versions.outputs.osver}}-bioc-${{steps.versions.outputs.biocver}}-r-${{steps.versions.outputs.rver}}/${digest#sha256:}"
130137
131138 - name : Upload digests
132139 uses : actions/upload-artifact@v4
0 commit comments