Skip to content

Commit bab2c22

Browse files
committed
adding koncur tests to the demo testing, moving image builds to e2e workflow image builds
1 parent e0470a1 commit bab2c22

File tree

4 files changed

+504
-114
lines changed

4 files changed

+504
-114
lines changed

.github/workflows/demo-testing.yml

Lines changed: 143 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,9 @@ jobs:
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

Comments
 (0)