Skip to content

Commit 7278a79

Browse files
committed
adding koncur tests to the demo testing, moving image builds to e2e workflow image builds
Signed-off-by: Shawn Hurley <shawn@hurley.page>
1 parent e0470a1 commit 7278a79

File tree

4 files changed

+471
-113
lines changed

4 files changed

+471
-113
lines changed

.github/workflows/demo-testing.yml

Lines changed: 110 additions & 103 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" 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

Comments
 (0)