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" 2>&1 |
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 }}:${{ github.run_id }} --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+ localhost/konveyor-analyzer-lsp:${{ github.run_id }} \
213179 --output-file=/analyzer-lsp/output.yaml \
214180 --rules=/analyzer-lsp/rules \
215181 --provider-settings=/analyzer-lsp/provider_settings.json \
@@ -223,12 +189,12 @@ 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 }}
196+ IMG_C_SHARP_PROVIDER : localhost/c-sharp-provider:${{ github.run_id }}
197+ IMG_ANALYZER : localhost/konveyor-analyzer-lsp:${{ github.run_id }}
232198 outputs :
233199 api_tests_ref : ${{ steps.extract-info.outputs.API_TESTS_REF }}
234200 tackle2_hub_tag : ${{ steps.extract-info.outputs.TACKLE2_HUB_TAG }}
@@ -279,7 +245,7 @@ jobs:
279245 uses : actions/download-artifact@v4
280246 with :
281247 path : /tmp/images
282- pattern : ${{ format('*--{0}', needs.detect-changes.outputs.image_tag ) }}
248+ pattern : ${{ format('*--{0}', github.run_id ) }}
283249 merge-multiple : true
284250
285251
@@ -313,8 +279,8 @@ jobs:
313279
314280 - name : Re-tag and push provider images to ttl.sh
315281 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
282+ podman tag localhost/java-provider:${{ github.run_id }} ttl.sh/konveyor-java-external-provider-${{ github.sha }}:2h
283+ podman tag localhost/generic-provider:${{ github.run_id }} ttl.sh/konveyor-generic-external-provider-${{ github.sha }}:2h
318284 podman push ttl.sh/konveyor-java-external-provider-${{ github.sha }}:2h
319285 podman push ttl.sh/konveyor-generic-external-provider-${{ github.sha }}:2h
320286
@@ -328,7 +294,7 @@ jobs:
328294 - name : Build addon and push images
329295 working-directory : tackle2-addon-analyzer
330296 run : |
331- sed -i "s,FROM quay.io/konveyor/analyzer-lsp\:latest,FROM localhost/konveyor-analyzer-lsp:${{ needs.detect-changes.outputs.image_tag }}," Dockerfile
297+ sed -i "s,FROM quay.io/konveyor/analyzer-lsp\:latest,FROM localhost/konveyor-analyzer-lsp:${{ github.run_id }}," Dockerfile
332298 IMG=ttl.sh/konveyor-tackle2-addon-analyzer-${GITHUB_SHA}:2h make image-podman
333299 podman push ttl.sh/konveyor-tackle2-addon-analyzer-${GITHUB_SHA}:2h
334300
@@ -343,10 +309,51 @@ jobs:
343309 - name : push bundle image
344310 run : |
345311 docker push ttl.sh/konveyor-operator-bundle-${GITHUB_SHA}:2h
312+
313+ koncur-kantra :
314+ needs : [test]
315+ strategy :
316+ fail-fast : false
317+ matrix :
318+ os :
319+ - os : " linux"
320+ runner : " ubuntu-24.04-arm"
321+ - os : " macos"
322+ runner : " macos-26-large"
323+ - os : " windows"
324+ runner : " windows-latest"
325+ exclude :
326+ - os :
327+ os : " macos"
328+ runner : " macos-26-large"
329+ runs-on : ${{ matrix.os.runner }}
330+ steps :
331+ - name : Run Koncur Testing
332+ id : koncur-test
333+ uses : shawn-hurley/ci/koncur-kantra@main
334+ with :
335+ os : ${{ matrix.os.os }}
336+ image_pattern : |
337+ *{kantra,provider}--${{ github.run_id }}
338+ ref : ${{ github.base_ref || inputs.ref || github.ref_name}}
339+
340+
341+ koncur-tackle-hub :
342+ needs : [test]
343+ runs-on : ubuntu-latest
344+ steps :
345+ - name : Test Hub with Koncur
346+ uses : shawn-hurley/ci/koncur-tackle-hub@main
347+ with :
348+ image_pattern : |
349+ *{tackle-keyloak-init,tackle2-*,provider}--${{ github.run_id }}
350+ ref : ${{ github.base_ref || inputs.ref || github.ref_name}}
351+
346352 e2e :
347353 needs : test
348354 uses : konveyor/ci/.github/workflows/global-ci-bundle.yml@main
349355 with :
350356 operator_bundle : ttl.sh/konveyor-operator-bundle-${{ github.sha }}:2h
351357 tackle_hub : " quay.io/konveyor/tackle2-hub:${{ needs.test.outputs.tackle2_hub_tag }}"
352358 api_tests_ref : " ${{ needs.test.outputs.api_tests_ref }}"
359+
0 commit comments