1616 generic : ${{ steps.filter.outputs.generic }}
1717 yq : ${{ steps.filter.outputs.yq}}
1818 c-sharp : ${{ steps.filter.outputs.c-sharp }}
19- image_tag : ${{ steps.set-tag.outputs.image_tag }}
2019 steps :
2120 - uses : actions/checkout@v3
2221
23- - name : Set image tag
24- id : set-tag
25- run : |
26- echo "image_tag=${{ github.sha }}-${{ github.run_id }}" >> $GITHUB_OUTPUT
27-
2822 - uses : dorny/paths-filter@v3
2923 id : filter
3024 with :
@@ -45,130 +39,66 @@ jobs:
4539 - '**'
4640 - '!external-providers/**'
4741
48- build-bases :
49- needs : detect-changes
50- runs-on : ubuntu-latest
51- strategy :
52- fail-fast : true
53- matrix :
54- include :
55- - provider : golang-dep-provider
56- image_name : golang-dep-provider
57- dockerfile : external-providers/golang-dependency-provider/Dockerfile
58- - provider : analyzer-lsp
59- image_name : konveyor-analyzer-lsp
60- dockerfile : Dockerfile
61- steps :
62- - uses : actions/checkout@v3
63-
64- - name : Build ${{ matrix.provider }} image
65- uses : konveyor/ci/build-image@main
66- with :
67- repo : konveyor/analyzer-lsp
68- checked_out : true
69- image_name : ${{ matrix.image_name }}
70- image_tag : ${{ needs.detect-changes.outputs.image_tag }}
71- dockerfile_path : ${{ matrix.dockerfile }}
72- build_context : .
73-
74- build-all-providers :
75- needs : [detect-changes, build-bases]
76- runs-on : ubuntu-latest
77- strategy :
78- fail-fast : true
79- matrix :
80- include :
81- - provider : java
82- image_name : java-provider
83- dockerfile : external-providers/java-external-provider/Dockerfile
84- build_args : JAVA_BUNDLE_TAG=latest
85- checked_out : true
86- - provider : generic
87- image_name : generic-provider
88- dockerfile : external-providers/generic-external-provider/Dockerfile
89- needs_golang_dep : true
90- build_args : GOLANG_DEP_IMAGE=localhost/golang-dep-provider:${{ needs.detect-changes.outputs.image_tag }}
91- checked_out : true
92- - provider : yq
93- image_name : yq-provider
94- dockerfile : external-providers/yq-external-provider/Dockerfile
95- checked_out : true
96- - provider : c-sharp
97- image_name : c-sharp-provider
98- dockerfile : Dockerfile
99- repo : konveyor/c-sharp-analyzer-provider
100- checked_out : false
101- cache-key-file : Cargo.lock
102- steps :
103- - uses : actions/checkout@v3
104- if : needs.detect-changes.outputs[matrix.provider] == 'true'
105-
106- - name : Build ${{ matrix.provider }} provider image
107- if : needs.detect-changes.outputs[matrix.provider] == 'true'
108- uses : konveyor/ci/build-image@main
109- with :
110- repo : ${{ matrix.repo || 'konveyor/analyzer-lsp' }}
111- checked_out : ${{ matrix.checked_out }}
112- image_name : ${{ matrix.image_name }}
113- image_tag : ${{ needs.detect-changes.outputs.image_tag }}
114- dockerfile_path : ${{ matrix.dockerfile }}
115- build_context : .
116- base_image : ${{ matrix.needs_golang_dep == true && format('golang-dep-provider--{0}', needs.detect-changes.outputs.image_tag) || '' }}
117- build_args : ${{ matrix.build_args || '' }}
118- cache-key-file : ${{ matrix.cache-key-file || 'go.sum' }}
42+ build-images :
43+ name : Build e2e Images
44+ uses : shawn-hurley/ci/.github/workflows/e2e-image-build.yaml@main
45+ with :
46+ repo : ${{ github.repository }}
47+ ref : ${{ github.ref }}
11948
12049 provider-tests :
121- needs : [detect-changes, build-all-providers ]
50+ needs : [detect-changes, build-images ]
12251 runs-on : ubuntu-latest
12352 env :
124- TAG : ${{ needs.detect-changes.outputs.image_tag }}
53+ TAG : ${{ github.run_id }}
12554 strategy :
12655 fail-fast : false
12756 matrix :
12857 include :
12958 - provider : java
130- artifact_pattern : " {konveyor- analyzer-lsp,java-provider}"
59+ artifact_pattern : " *{ analyzer-lsp,java-external -provider}"
13160 test-data : external-providers/java-external-provider/examples
132- image_name : java-provider
61+ image_env : IMG_JAVA_PROVIDER
13362 demo-output-path : external-providers/java-external-provider/e2e-tests/demo-output.yaml
13463 provider_settings-path : external-providers/java-external-provider/e2e-tests/provider_settings.json
13564 testing-rules : external-providers/java-external-provider/e2e-tests/rule-example.yaml
13665 # Generic golang
13766 - provider : generic
138- artifact_pattern : " {konveyor- analyzer-lsp,generic-provider,golang-dep -provider}"
67+ artifact_pattern : " *{ analyzer-lsp,generic-external -provider}"
13968 test-data : examples
140- image_name : generic-provider
69+ image_env : IMG_GENERIC_PROVIDER
14170 demo-output-path : external-providers/generic-external-provider/e2e-tests/golang-e2e/demo-output.yaml
14271 provider_settings-path : external-providers/generic-external-provider/e2e-tests/golang-e2e/provider_settings.json
14372 testing-rules : external-providers/generic-external-provider/e2e-tests/golang-e2e/rule-example.yaml
14473 # Generic python
14574 - provider : generic
146- artifact_pattern : " {konveyor- analyzer-lsp,generic-provider}"
75+ artifact_pattern : " *{ analyzer-lsp,generic-external -provider}"
14776 test-data : examples
148- image_name : generic-provider
77+ image_env : IMG_GENERIC_PROVIDER
14978 demo-output-path : external-providers/generic-external-provider/e2e-tests/python-e2e/demo-output.yaml
15079 provider_settings-path : external-providers/generic-external-provider/e2e-tests/python-e2e/provider_settings.json
15180 testing-rules : external-providers/generic-external-provider/e2e-tests/python-e2e/rule-example.yaml
15281 # Generic nodejs
15382 - provider : generic
154- artifact_pattern : " {konveyor- analyzer-lsp,generic-provider}"
83+ artifact_pattern : " *{ analyzer-lsp,generic-external -provider}"
15584 test-data : examples
156- image_name : generic-provider
85+ image_env : IMG_GENERIC_PROVIDER
15786 demo-output-path : external-providers/generic-external-provider/e2e-tests/nodejs-e2e/demo-output.yaml
15887 provider_settings-path : external-providers/generic-external-provider/e2e-tests/nodejs-e2e/provider_settings.json
15988 testing-rules : external-providers/generic-external-provider/e2e-tests/nodejs-e2e/rule-example.yaml
16089 - provider : yq
161- artifact_pattern : " {konveyor- analyzer-lsp,yq-provider}"
90+ artifact_pattern : " *{ analyzer-lsp,yq-external -provider}"
16291 test-data : examples
163- image_name : yq-provider
92+ image_env : IMG_YQ_PROVIDER
16493 demo-output-path : external-providers/yq-external-provider/e2e-tests/demo-output.yaml
16594 provider_settings-path : external-providers/yq-external-provider/e2e-tests/provider_settings.json
16695 testing-rules : external-providers/yq-external-provider/e2e-tests/rule-example.yaml
16796 - provider : c-sharp
16897 repo : " konveyor/c-sharp-analyzer-provider"
169- artifact_pattern : " {konveyor-analyzer-lsp,c-sharp-provider}"
98+ artifact_pattern : " *analyzer-lsp"
99+ nightly_pattern : " *c-sharp-provider"
170100 test-data : testdata
171- image_name : c-sharp-provider
101+ image_env : IMG_C_SHARP_PROVIDER
172102 demo-output-path : e2e-tests/demo-output.yaml
173103 provider_settings-path : e2e-tests/provider_settings.json
174104 testing-rules : rulesets
@@ -182,16 +112,52 @@ jobs:
182112 if : needs.detect-changes.outputs[matrix.provider] == 'true'
183113 uses : actions/download-artifact@v4
184114 with :
185- pattern : ${{ format('{0}--{1}', matrix.artifact_pattern, needs.detect-changes.outputs.image_tag ) }}
115+ pattern : ${{ format('{0}--{1}', matrix.artifact_pattern, github.run_id ) }}
186116 path : /tmp/images
187117 merge-multiple : true
118+
119+ - name : Get nightly if needed
120+ if : needs.detect-changes.outputs[matrix.provider] == 'true' && matrix.nightly_pattern
121+ env :
122+ GH_TOKEN : ${{ github.token }}
123+ shell : bash
124+ run : |
125+ WORKFLOW_RUN=$(gh run list -R=konveyor/ci --workflow=nightly-koncur.yaml --branch=main --status=success --limit=1 --json databaseId --jq '.[0].databaseId')
126+ gh run download -R=konveyor/ci "$WORKFLOW_RUN" --pattern "${{ matrix.nightly_pattern }}--*_20[0-9][0-9].[0-9][0-9].[0-9][0-9]" --dir /tmp/images
188127
189128 - name : Load images into podman
190129 if : needs.detect-changes.outputs[matrix.provider] == 'true'
191130 run : |
131+ java_provider_image_regex=".*java(-external)?-provider.*"
132+ generic_provider_image_regex=".*generic(-external)?-provider.*"
133+ yq_provider_image_regex=".*yq-external-provider.*"
134+ analyzer_regex=".*analyzer-lsp.*"
135+ c_sharp_provider_image_regex=".*c-sharp-provider.*"
136+
192137 for image in $(find /tmp/images -type f -name "*.tar"); do
193138 echo "Loading image: ${image}"
194- podman load -i "${image}"
139+ image=$(podman load -i "${image}" | awk '{print $NF}')
140+
141+ if [[ "$image" =~ $java_provider_image_regex ]]; then
142+ echo "Java Provider Image Found Set Env Var: JAVA_PROVIDER_IMG=$image"
143+ echo "IMG_JAVA_PROVIDER=$image" >> $GITHUB_ENV
144+ fi
145+ if [[ "$image" =~ $c_sharp_provider_image_regex ]]; then
146+ echo "Java Provider Image Found Set Env Var: IMG_C_SHARP_PROVIDER=$image"
147+ echo "IMG_C_SHARP_PROVIDER=$image" >> $GITHUB_ENV
148+ fi
149+ if [[ "$image" =~ $analyzer_regex ]]; then
150+ echo "Analyzer image Found Set Env Var: IMG_ANALYZER=$image"
151+ echo "IMG_ANALYZER=$image" >> $GITHUB_ENV
152+ fi
153+ if [[ "$image" =~ $generic_provider_image_regex ]]; then
154+ echo "Generic Provider Image Found Set Env Var: GENERIC_PROVIDER_IMG=$image"
155+ echo "IMG_GENERIC_PROVIDER=$image" >> $GITHUB_ENV
156+ fi
157+ if [[ "$image" =~ $yq_provider_image_regex ]]; then
158+ echo "Generic Provider Image Found Set Env Var: IMG_YQ_PROVIDER=$image"
159+ echo "IMG_YQ_PROVIDER=$image" >> $GITHUB_ENV
160+ fi
195161 done
196162 echo "Loaded images:"
197163 podman images
@@ -203,13 +169,13 @@ jobs:
203169 podman volume create test-data
204170 podman run --rm -v test-data:/target:U,Z -v $(pwd)/${{ matrix.test-data }}:/src/:U,Z --entrypoint=cp alpine -a /src/. /target/
205171 podman pod create --name=analyzer-${{ matrix.provider }}
206- podman run --pod analyzer-${{ matrix.provider }} --name ${{ matrix.provider }}-provider -d -v test-data:/analyzer-lsp/examples:U,Z localhost/$ {{ matrix.image_name }}:${{ needs.detect-changes.outputs.image_tag }} --port 14651
172+ podman run --pod analyzer-${{ matrix.provider }} --name ${{ matrix.provider }}-provider -d -v test-data:/analyzer-lsp/examples:U,Z $$ {{ matrix.image_env }} --port 14651
207173 podman run --entrypoint /usr/local/bin/konveyor-analyzer --pod=analyzer-${{ matrix.provider }} \
208174 -v test-data:/analyzer-lsp/examples:U,Z \
209175 -v $(pwd)/${{ matrix.demo-output-path }}:/analyzer-lsp/output.yaml:U,Z \
210176 -v $(pwd)/${{ matrix.provider_settings-path }}:/analyzer-lsp/provider_settings.json:U,Z \
211177 -v $(pwd)/${{ matrix.testing-rules }}:/analyzer-lsp/rules:U,Z \
212- localhost/konveyor-analyzer-lsp:${{ needs.detect-changes.outputs.image_tag }} \
178+ $IMG_ANALYZER \
213179 --output-file=/analyzer-lsp/output.yaml \
214180 --rules=/analyzer-lsp/rules \
215181 --provider-settings=/analyzer-lsp/provider_settings.json \
@@ -223,12 +189,10 @@ jobs:
223189
224190
225191 test :
226- needs : [detect-changes, build-all-providers , provider-tests]
192+ needs : [detect-changes, build-images , provider-tests]
227193 runs-on : ubuntu-latest
228194 env :
229- TAG : ${{ needs.detect-changes.outputs.image_tag }}
230- IMG_C_SHARP_PROVIDER : localhost/c-sharp-provider:${{ needs.detect-changes.outputs.image_tag }}
231- IMG_ANALYZER : localhost/konveyor-analyzer-lsp:${{ needs.detect-changes.outputs.image_tag }}
195+ TAG : ${{ github.run_id }}
232196 outputs :
233197 api_tests_ref : ${{ steps.extract-info.outputs.API_TESTS_REF }}
234198 tackle2_hub_tag : ${{ steps.extract-info.outputs.TACKLE2_HUB_TAG }}
@@ -279,15 +243,49 @@ jobs:
279243 uses : actions/download-artifact@v4
280244 with :
281245 path : /tmp/images
282- pattern : ${{ format('*--{0}', needs.detect-changes.outputs.image_tag ) }}
246+ pattern : ${{ format('*--{0}', github.run_id ) }}
283247 merge-multiple : true
284248
249+ - name : Get nightly c-sharp provider
250+ env :
251+ GH_TOKEN : ${{ github.token }}
252+ shell : bash
253+ run : |
254+ WORKFLOW_RUN=$(gh run list -R=konveyor/ci --workflow=nightly-koncur.yaml --branch=main --status=success --limit=1 --json databaseId --jq '.[0].databaseId')
255+ gh run download -R=konveyor/ci "$WORKFLOW_RUN" --pattern "*c-sharp-provider--*_20[0-9][0-9].[0-9][0-9].[0-9][0-9]" --dir /tmp/images
285256
286257 - name : Load images into podman
287258 run : |
259+ java_provider_image_regex=".*java(-external)?-provider.*"
260+ generic_provider_image_regex=".*generic(-external)?-provider.*"
261+ yq_provider_image_regex=".*yq-external-provider.*"
262+ analyzer_regex=".*analyzer-lsp.*"
263+ c_sharp_provider_image_regex=".*c-sharp-provider.*"
264+
288265 for image in $(find /tmp/images -type f -name "*.tar"); do
289266 echo "Loading image: ${image}"
290- podman load -i "${image}"
267+ image=$(podman load -i "${image}" | awk '{print $NF}')
268+
269+ if [[ "$image" =~ $java_provider_image_regex ]]; then
270+ echo "Java Provider Image Found Set Env Var: IMG_JAVA_PROVIDER=$image"
271+ echo "IMG_JAVA_PROVIDER=$image" >> $GITHUB_ENV
272+ fi
273+ if [[ "$image" =~ $c_sharp_provider_image_regex ]]; then
274+ echo "C# Provider Image Found Set Env Var: IMG_C_SHARP_PROVIDER=$image"
275+ echo "IMG_C_SHARP_PROVIDER=$image" >> $GITHUB_ENV
276+ fi
277+ if [[ "$image" =~ $analyzer_regex ]]; then
278+ echo "Analyzer image Found Set Env Var: IMG_ANALYZER=$image"
279+ echo "IMG_ANALYZER=$image" >> $GITHUB_ENV
280+ fi
281+ if [[ "$image" =~ $generic_provider_image_regex ]]; then
282+ echo "Generic Provider Image Found Set Env Var: IMG_GENERIC_PROVIDER=$image"
283+ echo "IMG_GENERIC_PROVIDER=$image" >> $GITHUB_ENV
284+ fi
285+ if [[ "$image" =~ $yq_provider_image_regex ]]; then
286+ echo "YQ Provider Image Found Set Env Var: IMG_YQ_PROVIDER=$image"
287+ echo "IMG_YQ_PROVIDER=$image" >> $GITHUB_ENV
288+ fi
291289 done
292290 echo "Loaded images:"
293291 podman images
@@ -313,8 +311,8 @@ jobs:
313311
314312 - name : Re-tag and push provider images to ttl.sh
315313 run : |
316- podman tag localhost/java-provider:${{ needs.detect-changes.outputs.image_tag }} ttl.sh/konveyor-java-external-provider-${{ github.sha }}:2h
317- podman tag localhost/generic-provider:${{ needs.detect-changes.outputs.image_tag }} ttl.sh/konveyor-generic-external-provider-${{ github.sha }}:2h
314+ podman tag $IMG_JAVA_PROVIDER ttl.sh/konveyor-java-external-provider-${{ github.sha }}:2h
315+ podman tag $IMG_GENERIC_PROVIDER ttl.sh/konveyor-generic-external-provider-${{ github.sha }}:2h
318316 podman push ttl.sh/konveyor-java-external-provider-${{ github.sha }}:2h
319317 podman push ttl.sh/konveyor-generic-external-provider-${{ github.sha }}:2h
320318
@@ -328,7 +326,7 @@ jobs:
328326 - name : Build addon and push images
329327 working-directory : tackle2-addon-analyzer
330328 run : |
331- sed -i "s,FROM quay.io/konveyor/analyzer-lsp\:latest,FROM localhost/konveyor-analyzer-lsp:${{ needs.detect-changes.outputs.image_tag }} ," Dockerfile
329+ sed -i "s,FROM quay.io/konveyor/analyzer-lsp\:latest,FROM $IMG_ANALYZER ," Dockerfile
332330 IMG=ttl.sh/konveyor-tackle2-addon-analyzer-${GITHUB_SHA}:2h make image-podman
333331 podman push ttl.sh/konveyor-tackle2-addon-analyzer-${GITHUB_SHA}:2h
334332
@@ -343,10 +341,51 @@ jobs:
343341 - name : push bundle image
344342 run : |
345343 docker push ttl.sh/konveyor-operator-bundle-${GITHUB_SHA}:2h
344+
345+ koncur-kantra :
346+ needs : [test]
347+ strategy :
348+ fail-fast : false
349+ matrix :
350+ os :
351+ - os : " linux"
352+ runner : " ubuntu-24.04-arm"
353+ - os : " macos"
354+ runner : " macos-26-large"
355+ - os : " windows"
356+ runner : " windows-latest"
357+ exclude :
358+ - os :
359+ os : " macos"
360+ runner : " macos-26-large"
361+ runs-on : ${{ matrix.os.runner }}
362+ steps :
363+ - name : Run Koncur Testing
364+ id : koncur-test
365+ uses : shawn-hurley/ci/koncur-kantra@main
366+ with :
367+ os : ${{ matrix.os.os }}
368+ image_pattern : |
369+ *{kantra,provider}--${{ github.run_id }}
370+ ref : ${{ github.base_ref || inputs.ref || github.ref_name}}
371+
372+
373+ koncur-tackle-hub :
374+ needs : [test]
375+ runs-on : ubuntu-latest
376+ steps :
377+ - name : Test Hub with Koncur
378+ uses : shawn-hurley/ci/koncur-tackle-hub@main
379+ with :
380+ image_pattern : |
381+ *{tackle-keyloak-init,tackle2-*,provider}--${{ github.run_id }}
382+ ref : ${{ github.base_ref || inputs.ref || github.ref_name}}
383+
346384 e2e :
347385 needs : test
348386 uses : konveyor/ci/.github/workflows/global-ci-bundle.yml@main
349387 with :
350388 operator_bundle : ttl.sh/konveyor-operator-bundle-${{ github.sha }}:2h
351389 tackle_hub : " quay.io/konveyor/tackle2-hub:${{ needs.test.outputs.tackle2_hub_tag }}"
352390 api_tests_ref : " ${{ needs.test.outputs.api_tests_ref }}"
391+
0 commit comments