2727 run_gpu_e2e : ${{ steps.labels.outputs.run_gpu_e2e }}
2828 run_kubernetes_ha_e2e : ${{ steps.labels.outputs.run_kubernetes_ha_e2e }}
2929 run_kubernetes_credential_drivers_e2e : ${{ steps.labels.outputs.run_kubernetes_credential_drivers_e2e }}
30+ run_snap_smoke : ${{ steps.labels.outputs.run_snap_smoke }}
3031 run_any_e2e : ${{ steps.labels.outputs.run_any_e2e }}
3132 steps :
3233 - uses : actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
4647 run_gpu_e2e="$(jq -r 'index("test:e2e-gpu") != null' <<< "$LABELS_JSON")"
4748 run_kubernetes_ha_e2e="$(jq -r 'index("test:e2e-kubernetes") != null' <<< "$LABELS_JSON")"
4849 run_kubernetes_credential_drivers_e2e="$(jq -r 'index("test:e2e-kubernetes") != null' <<< "$LABELS_JSON")"
50+ run_snap_smoke="$(jq -r 'index("test:snap") != null' <<< "$LABELS_JSON")"
4951 ;;
5052 merge_group)
5153 # Merge groups have no PR labels. When GPU E2E is required as documented
@@ -55,15 +57,17 @@ jobs:
5557 run_gpu_e2e=true
5658 run_kubernetes_ha_e2e=false
5759 run_kubernetes_credential_drivers_e2e=false
60+ run_snap_smoke=true
5861 ;;
5962 *)
6063 run_core_e2e=true
6164 run_gpu_e2e=true
6265 run_kubernetes_ha_e2e=true
6366 run_kubernetes_credential_drivers_e2e=true
67+ run_snap_smoke=true
6468 ;;
6569 esac
66- if [ "$run_core_e2e" = "true" ] || [ "$run_gpu_e2e" = "true" ] || [ "$run_kubernetes_ha_e2e" = "true" ] || [ "$run_kubernetes_credential_drivers_e2e" = "true" ]; then
70+ if [ "$run_core_e2e" = "true" ] || [ "$run_gpu_e2e" = "true" ] || [ "$run_kubernetes_ha_e2e" = "true" ] || [ "$run_kubernetes_credential_drivers_e2e" = "true" ] || [ "$run_snap_smoke" = "true" ] ; then
6771 run_any_e2e=true
6872 else
6973 run_any_e2e=false
7377 echo "run_gpu_e2e=$run_gpu_e2e"
7478 echo "run_kubernetes_ha_e2e=$run_kubernetes_ha_e2e"
7579 echo "run_kubernetes_credential_drivers_e2e=$run_kubernetes_credential_drivers_e2e"
80+ echo "run_snap_smoke=$run_snap_smoke"
7681 echo "run_any_e2e=$run_any_e2e"
7782 } >> "$GITHUB_OUTPUT"
7883
8691 with :
8792 component : gateway
8893 image-tag : ${{ github.sha }}
94+ platform : ${{ (needs.pr_metadata.outputs.run_core_e2e == 'true' || needs.pr_metadata.outputs.run_gpu_e2e == 'true' || needs.pr_metadata.outputs.run_kubernetes_ha_e2e == 'true' || needs.pr_metadata.outputs.run_kubernetes_credential_drivers_e2e == 'true') && 'linux/amd64,linux/arm64' || 'linux/amd64' }}
8995
9096 build-supervisor :
9197 needs : [pr_metadata]
97103 with :
98104 component : supervisor
99105 image-tag : ${{ github.sha }}
106+ platform : ${{ (needs.pr_metadata.outputs.run_core_e2e == 'true' || needs.pr_metadata.outputs.run_gpu_e2e == 'true' || needs.pr_metadata.outputs.run_kubernetes_ha_e2e == 'true' || needs.pr_metadata.outputs.run_kubernetes_credential_drivers_e2e == 'true') && 'linux/amd64,linux/arm64' || 'linux/amd64' }}
100107
101108 build-cli :
102109 needs : [pr_metadata]
@@ -107,7 +114,45 @@ jobs:
107114 uses : ./.github/workflows/docker-build.yml
108115 with :
109116 component : cli
110- platform : linux/amd64,linux/arm64
117+ platform : ${{ (needs.pr_metadata.outputs.run_core_e2e == 'true' || needs.pr_metadata.outputs.run_gpu_e2e == 'true' || needs.pr_metadata.outputs.run_kubernetes_ha_e2e == 'true' || needs.pr_metadata.outputs.run_kubernetes_credential_drivers_e2e == 'true') && 'linux/amd64,linux/arm64' || 'linux/amd64' }}
118+
119+ build-snap :
120+ name : Build Snap
121+ needs : [pr_metadata, build-gateway, build-supervisor, build-cli]
122+ if : needs.pr_metadata.outputs.should_run == 'true' && needs.pr_metadata.outputs.run_snap_smoke == 'true'
123+ permissions :
124+ actions : read
125+ contents : read
126+ packages : read
127+ uses : ./.github/workflows/snap-build.yml
128+ with :
129+ checkout-ref : ${{ github.sha }}
130+ artifact-layout : raw
131+ build-matrix : ' {"include":[{"arch":"amd64","runner":"linux-amd64-cpu8"}]}'
132+ cli-artifact-prefix : rust-binary-cli
133+ gateway-artifact-prefix : rust-binary-gateway
134+ supervisor-artifact-prefix : rust-binary-supervisor
135+
136+ snap-smoke :
137+ name : Snap Smoke
138+ needs : [pr_metadata, build-snap]
139+ if : needs.pr_metadata.outputs.should_run == 'true' && needs.pr_metadata.outputs.run_snap_smoke == 'true'
140+ runs-on : ubuntu-latest
141+ timeout-minutes : 20
142+ permissions :
143+ actions : read
144+ contents : read
145+ steps :
146+ - uses : actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
147+ - name : Download locally built Snap
148+ uses : actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
149+ with :
150+ name : snap-linux-amd64
151+ path : release/
152+ - name : Install and verify local Snap
153+ uses : ./.github/actions/snap-gateway-smoke
154+ with :
155+ snap-path : ./release/*.snap
111156
112157 build-driver-vm-linux :
113158 needs : [pr_metadata]
0 commit comments