@@ -73,11 +73,16 @@ jobs:
7373
7474 - name : Create OCI Image with WASM Component
7575 run : |
76- # Create a simple OCI image containing the WASM file
77- # Using crane to create a minimal OCI artifact
76+ # Create an OCI artifact containing the WASM file
77+ # Using oras which is designed for OCI artifacts
7878
79- # Install crane
80- go install github.com/google/go-containerregistry/cmd/crane@latest
79+ # Install oras
80+ VERSION="1.2.2"
81+ curl -LO "https://github.com/oras-project/oras/releases/download/v${VERSION}/oras_${VERSION}_linux_amd64.tar.gz"
82+ mkdir -p oras-install/
83+ tar -zxf "oras_${VERSION}_linux_amd64.tar.gz" -C oras-install/
84+ sudo mv oras-install/oras /usr/local/bin/
85+ rm -rf "oras_${VERSION}_linux_amd64.tar.gz" oras-install/
8186
8287 # Determine tag
8388 if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
@@ -86,26 +91,20 @@ jobs:
8691 TAG="${{ github.event.release.tag_name }}"
8792 fi
8893
89- # Create OCI artifact
94+ # Create OCI artifact references
9095 IMAGE_TAG="${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${TAG}"
9196 IMAGE_LATEST="${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest"
9297
93- # Create a simple tar with the wasm file
94- mkdir -p oci-artifact
95- cp file_ops_component.wasm oci-artifact/
96- tar -czf component.tar.gz -C oci-artifact file_ops_component.wasm
97-
98- # Push as OCI artifact using crane
99- crane append \
100- --base scratch \
101- --new_layer component.tar.gz \
102- --new_tag "${IMAGE_TAG}"
98+ # Push WASM file as OCI artifact
99+ oras push "${IMAGE_TAG}" \
100+ --artifact-type application/vnd.wasm.component.layer.v1+wasm \
101+ file_ops_component.wasm:application/vnd.wasm.component.layer.v1+wasm
103102
104103 # Tag as latest
105- crane tag "${IMAGE_TAG}" latest
104+ oras tag "${IMAGE_TAG}" latest
106105
107- echo "Published OCI image : ${IMAGE_TAG}"
108- echo "Published OCI image : ${IMAGE_LATEST}"
106+ echo "Published OCI artifact : ${IMAGE_TAG}"
107+ echo "Published OCI artifact : ${IMAGE_LATEST}"
109108 echo "IMAGE_TAG=${IMAGE_TAG}" >> $GITHUB_ENV
110109 echo "IMAGE_LATEST=${IMAGE_LATEST}" >> $GITHUB_ENV
111110
@@ -184,11 +183,11 @@ jobs:
184183
185184 - **Unsigned WASM Component** (`file_ops_component.wasm`) - Ready to use
186185 - **SHA256 Checksum** - For integrity verification
187- - **Signed OCI Image ** - Available at `${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${TAG}`
186+ - **Signed OCI Artifact ** - Available at `${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${TAG}`
188187
189188 ### 🔐 Security Features
190189
191- - ✅ **OCI Image Signing** - Signed with Cosign using GitHub OIDC (keyless)
190+ - ✅ **OCI Artifact Signing** - Signed with Cosign using GitHub OIDC (keyless)
192191 - ✅ **SLSA Provenance** - Build attestation included
193192 - ✅ **SHA256 Checksums** - For download verification
194193
@@ -202,10 +201,10 @@ jobs:
202201 sha256sum -c file_ops_component.wasm.sha256
203202 ```
204203
205- #### Pull Signed OCI Image
204+ #### Pull Signed OCI Artifact
206205 ```bash
207- # Pull the signed OCI image
208- docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${TAG}
206+ # Pull the signed OCI artifact with oras
207+ oras pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${TAG}
209208
210209 # Verify signature with Cosign
211210 cosign verify \
@@ -240,14 +239,14 @@ jobs:
240239 echo "" >> $GITHUB_STEP_SUMMARY
241240 echo "### 📦 Published Artifacts" >> $GITHUB_STEP_SUMMARY
242241 echo "- **WASM Component**: \`file_ops_component.wasm\` ($(ls -lh file_ops_component.wasm | awk '{print $5}'))" >> $GITHUB_STEP_SUMMARY
243- echo "- **OCI Image **: \`${IMAGE_TAG}\`" >> $GITHUB_STEP_SUMMARY
244- echo "- **OCI Image (latest)**: \`${IMAGE_LATEST}\`" >> $GITHUB_STEP_SUMMARY
242+ echo "- **OCI Artifact **: \`${IMAGE_TAG}\`" >> $GITHUB_STEP_SUMMARY
243+ echo "- **OCI Artifact (latest)**: \`${IMAGE_LATEST}\`" >> $GITHUB_STEP_SUMMARY
245244 echo "" >> $GITHUB_STEP_SUMMARY
246245 echo "### 🔐 Security" >> $GITHUB_STEP_SUMMARY
247- echo "- ✅ OCI image signed with Cosign (keyless OIDC)" >> $GITHUB_STEP_SUMMARY
246+ echo "- ✅ OCI artifact signed with Cosign (keyless OIDC)" >> $GITHUB_STEP_SUMMARY
248247 echo "- ✅ SLSA provenance attestation" >> $GITHUB_STEP_SUMMARY
249248 echo "- ✅ SHA256 checksums provided" >> $GITHUB_STEP_SUMMARY
250249 echo "" >> $GITHUB_STEP_SUMMARY
251250 echo "### 🔗 Links" >> $GITHUB_STEP_SUMMARY
252251 echo "- [Download WASM](https://github.com/${{ github.repository }}/releases/tag/${TAG})" >> $GITHUB_STEP_SUMMARY
253- echo "- [Pull OCI Image ](${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${TAG})" >> $GITHUB_STEP_SUMMARY
252+ echo "- [Pull OCI Artifact ](${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${TAG})" >> $GITHUB_STEP_SUMMARY
0 commit comments