1717
1818 prepare :
1919 name : Determine image tag
20- runs-on : ubuntu-latest
2120 needs : build-and-test
21+ runs-on : ubuntu-latest
2222 if : |
2323 github.ref_name == 'main' ||
2424 startsWith(github.head_ref, 'feature/') ||
2727 outputs :
2828 image_tag : ${{ steps.determine-tag.outputs.image_tag }}
2929 steps :
30- - name : Determine Docker tag based on Git ref
30+ - name : Determine base tag
3131 id : determine-tag
3232 run : |
3333 if [ "${{ github.event_name }}" = "pull_request" ] ; then
@@ -45,14 +45,17 @@ jobs:
4545 echo "image_tag=feature-${SHORT_SHA}" | tee -a $GITHUB_OUTPUT
4646 fi
4747
48- post-compute -oci-image :
49- name : post-compute OCI image
48+ build -oci-image :
49+ name : Build OCI images
5050 needs : prepare
51+ strategy :
52+ matrix :
53+ package : [post-compute, pre-compute]
5154 uses :
iExecBlockchainComputing/github-actions-workflows/.github/workflows/[email protected] 5255 with :
53- image-name : docker-regis.iex.ec/tee-worker-post-compute -rust
56+ image-name : docker-regis.iex.ec/tee-worker-${{ matrix.package }} -rust
5457 image-tag : ${{ needs.prepare.outputs.image_tag }}
55- dockerfile : post-compute /Dockerfile
58+ dockerfile : ${{ matrix.package }} /Dockerfile
5659 context : .
5760 registry : docker-regis.iex.ec
5861 push : true
@@ -64,21 +67,55 @@ jobs:
6467 username : ${{ secrets.NEXUS_USERNAME }}
6568 password : ${{ secrets.NEXUS_PASSWORD }}
6669
67- pre-compute-oci-image :
68- name : pre-compute OCI image
69- needs : prepare
70- uses :
iExecBlockchainComputing/github-actions-workflows/.github/workflows/[email protected] 71- with :
72- image-name : docker-regis.iex.ec/tee-worker-pre-compute-rust
73- image-tag : ${{ needs.prepare.outputs.image_tag }}
74- dockerfile : pre-compute/Dockerfile
75- context : .
76- registry : docker-regis.iex.ec
77- push : true
78- security-scan : true
79- security-report : " sarif"
80- hadolint : true
81- platforms : linux/amd64
82- secrets :
83- username : ${{ secrets.NEXUS_USERNAME }}
84- password : ${{ secrets.NEXUS_PASSWORD }}
70+ build-tee-image :
71+ name : Build TEE images
72+ needs : [prepare, build-oci-image]
73+ runs-on : ubuntu-latest
74+ strategy :
75+ matrix :
76+ sconify_image :
77+ - name : registry.scontain.com/scone-debug/iexec-sconify-image-unlocked
78+ version : 5.9.1
79+ tee_worker :
80+ - binary : /app/tee-worker-post-compute
81+ img_from : docker-regis.iex.ec/tee-worker-post-compute-rust
82+ img_to : docker-regis.iex.ec/tee-worker-post-compute-rust-unlocked
83+ - binary : /app/tee-worker-pre-compute
84+ img_from : docker-regis.iex.ec/tee-worker-pre-compute-rust
85+ img_to : docker-regis.iex.ec/tee-worker-pre-compute-rust-unlocked
86+ steps :
87+ - name : Login to Scontain registry
88+ uses : docker/login-action@v3
89+ with :
90+ registry : registry.scontain.com
91+ username : ${{ secrets.SCONTAIN_REGISTRY_USERNAME }}
92+ password : ${{ secrets.SCONTAIN_REGISTRY_PAT }}
93+ - name : Login to Docker regis
94+ uses : docker/login-action@v3
95+ with :
96+ registry : docker-regis.iex.ec
97+ username : ${{ secrets.NEXUS_USERNAME }}
98+ password : ${{ secrets.NEXUS_PASSWORD }}
99+ - name : Pull sconification tools
100+ run : docker pull ${{ matrix.sconify_image.name }}:${{ matrix.sconify_image.version }}
101+ - name : Pull native image
102+ run : docker pull ${{ matrix.tee_worker.img_from }}:${{ needs.prepare.outputs.image_tag }}
103+ - name : Sconify
104+ run : |
105+ IMG_FROM=${{ matrix.tee_worker.img_from }}:${{ needs.prepare.outputs.image_tag }}
106+ IMG_TO=${{ matrix.tee_worker.img_to }}:${{ needs.prepare.outputs.image_tag }}-sconify-${{ matrix.sconify_image.version }}-debug
107+ SCONE_IMAGE=${{ matrix.sconify_image.name }}:${{ matrix.sconify_image.version }}
108+ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock $SCONE_IMAGE \
109+ sconify_iexec --cli=$SCONE_IMAGE --crosscompiler=$SCONE_IMAGE \
110+ --base=alpine:3.22 --from=$IMG_FROM --to=$IMG_TO --binary=${{ matrix.tee_worker.binary }} \
111+ --heap=1G --stack=8M --host-path=/etc/hosts --host-path=/etc/resolv.conf --no-color --verbose
112+ echo
113+ docker run --rm -e SCONE_HASH=1 $IMG_TO
114+ - name : Push TEE image
115+ run : docker push ${{ matrix.tee_worker.img_to }}:${{ needs.prepare.outputs.image_tag }}-sconify-${{ matrix.sconify_image.version }}-debug
116+ - name : Clean OCI images
117+ run : |
118+ docker image rm -f \
119+ ${{ matrix.tee_worker.img_from }}:${{ needs.prepare.outputs.image_tag }} \
120+ ${{ matrix.tee_worker.img_to }}:${{ needs.prepare.outputs.image_tag }}-sconify-${{ matrix.sconify_image.version }}-debug \
121+ ${{ matrix.sconify_image.name }}:${{ matrix.sconify_image.version }}
0 commit comments