From 1f31764337c88573cb49c5778c8cb901c283eff9 Mon Sep 17 00:00:00 2001 From: SalvatoreZagaria Date: Fri, 15 Aug 2025 10:46:24 +0100 Subject: [PATCH 1/9] Migrate workflows to use GHCR-hosted container and replace artifact storage method for screenshots. Add Dockerfile for custom CI image. --- .github/workflows/run-tests-workflow.yml | 62 +++++++++++++++--------- docker/Ubuntu24-Dockerfile-CI-with-vcast | 59 ++++++++++++++++++++++ 2 files changed, 98 insertions(+), 23 deletions(-) create mode 100644 docker/Ubuntu24-Dockerfile-CI-with-vcast diff --git a/.github/workflows/run-tests-workflow.yml b/.github/workflows/run-tests-workflow.yml index c28127b8..8d96bf83 100644 --- a/.github/workflows/run-tests-workflow.yml +++ b/.github/workflows/run-tests-workflow.yml @@ -17,15 +17,18 @@ jobs: unit-tests: if: github.event.pull_request.draft == false permissions: write-all - runs-on: [self-hosted, vscode-vcast] + runs-on: ubuntu-24.04 env: ENABLE_ATG_FEATURE: TRUE LM_LICENSE_FILE: /vcast/vector-license.lic VECTOR_LICENSE_FILE: /vcast/vector-license.lic container: - image: rds-vtc-docker-dev-local.vegistry.vg.vector.int/vcast/vscode_ubuntu24_ci:node_18_dynamic_mounting - options: --user vcast_user --mount type=bind,source=${{ vars.VCAST_RELEASES_PATH }},target=/vcast + image: ghcr.io/vectorgrp/vscode_ubuntu24_ci:with_vcast + options: --user vcast_user + credentials: + username: ${{ github.actor }} + password: ${{ secrets.GHRC_TOKEN }} strategy: matrix: @@ -118,7 +121,7 @@ jobs: run: | curl -Os https://uploader.codecov.io/v0.7.1/linux/codecov chmod +x codecov - ./codecov -f ./coverage/coverage-final.json -F Unit -n vscode-vcast-unittests -t ${{ secrets.CODECOV_TOKEN }} -C ${{ github.sha }} -r ${{ github.repository }} -U ${http_proxy} >> out.txt + ./codecov -f ./coverage/coverage-final.json -F Unit -n vscode-vcast-unittests -t ${{ secrets.CODECOV_TOKEN }} -C ${{ github.sha }} -r ${{ github.repository }} >> out.txt cat out.txt | tail -n 1 | awk -F "'info'] " '{print $2}' | python3 -c 'import json,sys;obj=json.load(sys.stdin);print(obj.get("resultURL", ""))' > url.txt title="Coverage report URL" && \ [ -z $(cat url.txt) ] && echo "::notice title=$title::URL not found" || echo "::notice title=$title::$(cat url.txt)" @@ -162,11 +165,14 @@ jobs: generate-e2e-matrix: if: github.event.pull_request.draft == false permissions: write-all - runs-on: [self-hosted, vscode-vcast] + runs-on: ubuntu-24.04 container: - image: rds-vtc-docker-dev-local.vegistry.vg.vector.int/vcast/vscode_ubuntu24_ci:node_18_dynamic_mounting + image: ghcr.io/vectorgrp/vscode_ubuntu24_ci:with_vcast options: --user vcast_user + credentials: + username: ${{ github.actor }} + password: ${{ secrets.GHRC_TOKEN }} outputs: version_group_matrix: ${{ steps.set-matrix.outputs.matrix }} @@ -202,11 +208,14 @@ jobs: needs: generate-e2e-matrix if: github.event.pull_request.draft == false permissions: write-all - runs-on: [self-hosted, vscode-vcast] + runs-on: ubuntu-24.04 container: - image: rds-vtc-docker-dev-local.vegistry.vg.vector.int/vcast/vscode_ubuntu24_ci:node_18_dynamic_mounting - options: --user vcast_user --mount type=bind,source=${{ vars.VCAST_RELEASES_PATH }},target=/vcast + image: ghcr.io/vectorgrp/vscode_ubuntu24_ci:with_vcast + options: --user vcast_user + credentials: + username: ${{ github.actor }} + password: ${{ secrets.GHRC_TOKEN }} strategy: matrix: @@ -315,17 +324,15 @@ jobs: content=$([ -s ./tests/internal/e2e/gh_e2e_summary.md ] && cat ./tests/internal/e2e/gh_e2e_summary.md || echo 'Not available') echo "${content}" >> $GITHUB_STEP_SUMMARY - COMMIT_DATE=$(git log -1 --format=%cd --date=format:%Y-%m-%dT%H:%M:%S) - ARTIFACTORY_URL="https://artifactory.vi.vector.int:443/artifactory/rds-build-packages-generic-dev/vscode/tests-results/${{ github.ref_name }}/$COMMIT_DATE-${{ github.sha }}" - count=`ls -1 tests/internal/e2e/*.png 2>/dev/null | wc -l` - if [ $count != 0 ] ; then - cd tests/internal/e2e - tar -cvzf e2e_vcast${{ matrix.version }}_${{ matrix.group }}_screenshots.tar.gz *.png > /dev/null - URL="$ARTIFACTORY_URL/e2e_vcast${{ matrix.version }}_${{ matrix.group }}_screenshots/" - curl -H "X-Explode-Archive: true" -H "X-JFrog-Art-Api:${{ secrets.ARTIFACTORY_TOKEN }}" -X PUT $URL -T e2e_vcast${{ matrix.version }}_${{ matrix.group }}_screenshots.tar.gz - cd ../../.. - echo "[Screenshots]($URL)" >> $GITHUB_STEP_SUMMARY - fi + mkdir e2e_vcast${{ matrix.version }}_${{ matrix.group }}_screenshots + mv tests/internal/e2e/*.png e2e_vcast${{ matrix.version }}_${{ matrix.group }}_screenshots/ + echo "SCREENSHOTS_FOLDER=e2e_vcast${{ matrix.version }}_${{ matrix.group }}_screenshots" >> $GITHUB_ENV + + - name: Upload screenshots artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ env.SCREENSHOTS_FOLDER }} + path: ${{ env.SCREENSHOTS_FOLDER }} - name: Save dependencies - node if: steps.cache-dependencies-restore-node.outputs.cache-hit != 'true' @@ -349,8 +356,11 @@ jobs: runs-on: [ self-hosted, vscode-vcast] container: - image: rds-vtc-docker-dev-local.vegistry.vg.vector.int/vcast/vscode_ubuntu24_ci:node_18_dynamic_mounting + image: ghcr.io/vectorgrp/vscode_ubuntu24_ci:with_vcast options: --user vcast_user + credentials: + username: ${{ github.actor }} + password: ${{ secrets.GHRC_TOKEN }} steps: - name: Check out repository @@ -400,8 +410,11 @@ jobs: runs-on: [ self-hosted, vscode-vcast] container: - image: rds-vtc-docker-dev-local.vegistry.vg.vector.int/vcast/vscode_ubuntu24_ci:node_18_dynamic_mounting + image: ghcr.io/vectorgrp/vscode_ubuntu24_ci:with_vcast options: --user vcast_user + credentials: + username: ${{ github.actor }} + password: ${{ secrets.GHRC_TOKEN }} steps: - name: Check out repository @@ -452,8 +465,11 @@ jobs: runs-on: [ self-hosted, vscode-vcast] container: - image: rds-vtc-docker-dev-local.vegistry.vg.vector.int/vcast/vscode_ubuntu24_ci:node_18_dynamic_mounting + image: ghcr.io/vectorgrp/vscode_ubuntu24_ci:with_vcast options: --user vcast_user + credentials: + username: ${{ github.actor }} + password: ${{ secrets.GHRC_TOKEN }} steps: - name: Check out repository diff --git a/docker/Ubuntu24-Dockerfile-CI-with-vcast b/docker/Ubuntu24-Dockerfile-CI-with-vcast new file mode 100644 index 00000000..f98cef96 --- /dev/null +++ b/docker/Ubuntu24-Dockerfile-CI-with-vcast @@ -0,0 +1,59 @@ +# ghcr.io/vectorgrp/vscode_ubuntu24_ci +FROM rds-vtc-docker-dev-local.vegistry.vg.vector.int/vcast/vscode_ubuntu24_ci:node_18_dynamic_mounting + +ARG USERNAME=vcast_user +USER root +SHELL ["/bin/bash", "-lc"] + +# vcast +ADD https://artifactory.vi.vector.int:443/artifactory/rds-build-packages-generic-dev-local/vcast/2021sp0.tar.gz /vcast/2021sp0.tar.gz +ADD https://artifactory.vi.vector.int:443/artifactory/rds-build-packages-generic-dev-local/vcast/2023sp0.tar.gz /vcast/2023sp0.tar.gz +ADD https://artifactory.vi.vector.int:443/artifactory/rds-build-packages-generic-dev-local/vcast/2024sp1.tar.gz /vcast/2024sp1.tar.gz +ADD https://artifactory.vi.vector.int:443/artifactory/rds-build-packages-generic-dev-local/vcast/2024sp4.tar.gz /vcast/2024sp4.tar.gz +ADD https://artifactory.vi.vector.int:443/artifactory/rds-build-packages-generic-dev-local/vcast/2024sp5.tar.gz /vcast/2024sp5.tar.gz +ADD https://artifactory.vi.vector.int:443/artifactory/rds-build-packages-generic-dev-local/vcast/2025sp0.tar.gz /vcast/2025sp0.tar.gz +ADD https://artifactory.vi.vector.int:443/artifactory/rds-build-packages-generic-dev-local/vcast/2025sp1.tar.gz /vcast/2025sp1.tar.gz +ADD https://artifactory.vi.vector.int:443/artifactory/rds-build-packages-generic-dev-local/vcast/vector-license.lic /vcast/vector-license.lic + +RUN cd /vcast && \ + for f in *.tar.gz; do tar xf "$f"; done && rm *.tar.gz && \ + chown -R $(id -u $USERNAME):$(id -g $USERNAME) /vcast + +# cleaning up proxy settings +RUN set -eux; \ + N_PREFIX_DEFAULT="/home/${USERNAME}/.n"; \ + NPM_GLOBAL_NPMRC="${N_PREFIX:-$N_PREFIX_DEFAULT}/etc/npmrc"; \ + for f in \ + "/etc/npmrc" \ + "/usr/local/etc/npmrc" \ + "$NPM_GLOBAL_NPMRC" \ + "/home/${USERNAME}/.npmrc" \ + "/home/${USERNAME}/.config/npm/npmrc"; do \ + if [ -f "$f" ]; then \ + sed -i -E '/^(proxy|https-proxy|noproxy|cafile|registry)\s*=/d' "$f"; \ + fi; \ + done + +RUN set -eux; \ + if [ -f "/home/${USERNAME}/.bashrc" ]; then \ + sed -i -E '/REQUESTS_CA_BUNDLE|http_proxy|https_proxy|HTTP_PROXY|HTTPS_PROXY|NO_PROXY/d' "/home/${USERNAME}/.bashrc"; \ + fi + +RUN set -eux; \ + chown root:root /etc/ssl/certs/ca-certificates.crt || true + +RUN set -eux; \ + find /usr/local/share/ca-certificates -type f -name '*.crt' -print -delete || true; \ + update-ca-certificates --fresh || true + +ENV http_proxy= \ + https_proxy= \ + HTTP_PROXY= \ + HTTPS_PROXY= \ + NO_PROXY= + +RUN chown -R "${USERNAME}:${USERNAME}" "/home/${USERNAME}" || true + +USER ${USERNAME} + +SHELL ["/bin/bash", "--login", "-c"] \ No newline at end of file From 21204c562865dd07274584dc7f65f5283a22af98 Mon Sep 17 00:00:00 2001 From: SalvatoreZagaria Date: Fri, 15 Aug 2025 11:30:01 +0100 Subject: [PATCH 2/9] Update workflows to use `ubuntu-24.04` runner instead of self-hosted machine. --- .github/workflows/run-tests-workflow.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/run-tests-workflow.yml b/.github/workflows/run-tests-workflow.yml index 8d96bf83..8fb09575 100644 --- a/.github/workflows/run-tests-workflow.yml +++ b/.github/workflows/run-tests-workflow.yml @@ -353,7 +353,7 @@ jobs: black: if: github.event.pull_request.draft == false permissions: write-all - runs-on: [ self-hosted, vscode-vcast] + runs-on: ubuntu-24.04 container: image: ghcr.io/vectorgrp/vscode_ubuntu24_ci:with_vcast @@ -407,7 +407,7 @@ jobs: prettier: if: github.event.pull_request.draft == false permissions: write-all - runs-on: [ self-hosted, vscode-vcast] + runs-on: ubuntu-24.04 container: image: ghcr.io/vectorgrp/vscode_ubuntu24_ci:with_vcast @@ -462,7 +462,7 @@ jobs: xo: if: github.event.pull_request.draft == false permissions: write-all - runs-on: [ self-hosted, vscode-vcast] + runs-on: ubuntu-24.04 container: image: ghcr.io/vectorgrp/vscode_ubuntu24_ci:with_vcast From 136586abea3fe7534f5c1d3eea8ffebfe58e19a2 Mon Sep 17 00:00:00 2001 From: SalvatoreZagaria Date: Fri, 15 Aug 2025 14:44:49 +0100 Subject: [PATCH 3/9] Add user and group customization to Ubuntu 24 CI Dockerfile for GitHub runners. --- docker/Ubuntu24-Dockerfile-CI-with-vcast | 40 ++++++++++++++++++------ 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/docker/Ubuntu24-Dockerfile-CI-with-vcast b/docker/Ubuntu24-Dockerfile-CI-with-vcast index f98cef96..8f42e4a8 100644 --- a/docker/Ubuntu24-Dockerfile-CI-with-vcast +++ b/docker/Ubuntu24-Dockerfile-CI-with-vcast @@ -2,6 +2,9 @@ FROM rds-vtc-docker-dev-local.vegistry.vg.vector.int/vcast/vscode_ubuntu24_ci:node_18_dynamic_mounting ARG USERNAME=vcast_user +ARG USER_UID=1001 # host runner UID on GitHub-hosted runners +ARG USER_GID=121 # common docker group GID on GH runners (sometimes 127) + USER root SHELL ["/bin/bash", "-lc"] @@ -15,9 +18,19 @@ ADD https://artifactory.vi.vector.int:443/artifactory/rds-build-packages-generic ADD https://artifactory.vi.vector.int:443/artifactory/rds-build-packages-generic-dev-local/vcast/2025sp1.tar.gz /vcast/2025sp1.tar.gz ADD https://artifactory.vi.vector.int:443/artifactory/rds-build-packages-generic-dev-local/vcast/vector-license.lic /vcast/vector-license.lic +RUN set -eux; \ + if getent group "${USER_GID}" >/dev/null; then \ + groupmod -g "${USER_GID}" "${USERNAME}" || true; \ + else \ + groupmod -g "${USER_GID}" "${USERNAME}" || groupadd -g "${USER_GID}" "${USERNAME}"; \ + fi; \ + usermod -u "${USER_UID}" -g "${USER_GID}" "${USERNAME}"; \ + chown -R "${USER_UID}:${USER_GID}" "/home/${USERNAME}" + RUN cd /vcast && \ for f in *.tar.gz; do tar xf "$f"; done && rm *.tar.gz && \ - chown -R $(id -u $USERNAME):$(id -g $USERNAME) /vcast + chown -R $(id -u $USERNAME):$(id -g $USERNAME) /vcast && \ + chown -R $(id -u $USERNAME):$(id -g $USERNAME) /__w # cleaning up proxy settings RUN set -eux; \ @@ -40,17 +53,26 @@ RUN set -eux; \ fi RUN set -eux; \ - chown root:root /etc/ssl/certs/ca-certificates.crt || true - -RUN set -eux; \ - find /usr/local/share/ca-certificates -type f -name '*.crt' -print -delete || true; \ + chown root:root /etc/ssl/certs/ca-certificates.crt || true; \ + rm -f /etc/ssl/certs/ca-certificates.crt; \ + find /usr/local/share/ca-certificates -type f -iname 'vector_*.crt' -print -delete || true; \ + find /usr/local/share/ca-certificates/ -type f -iname '*.crt' -print -delete || true; \ update-ca-certificates --fresh || true -ENV http_proxy= \ - https_proxy= \ - HTTP_PROXY= \ +ENV NODE_EXTRA_CA_CERTS= \ + SSL_CERT_FILE= \ + REQUESTS_CA_BUNDLE= \ + SSL_CERT_DIR= \ + CA_BUNDLE_PATH= \ + CURL_CA_BUNDLE= \ + GLOBAL_AGENT_HTTP_PROXY= \ + http_proxy= \ + GLOBAL_AGENT_HTTPS_PROXY= \ + GLOBAL_AGENT_NO_PROXY= \ HTTPS_PROXY= \ - NO_PROXY= + https_proxy= \ + no_proxy= \ + HTTP_PROXY= RUN chown -R "${USERNAME}:${USERNAME}" "/home/${USERNAME}" || true From b530e933e7eb08f19b1743e6dc8598f06cdf14bc Mon Sep 17 00:00:00 2001 From: SalvatoreZagaria Date: Fri, 15 Aug 2025 14:44:54 +0100 Subject: [PATCH 4/9] Improve screenshot handling in CI workflow by adding existence checks and conditional artifact upload. --- .github/workflows/run-tests-workflow.yml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/run-tests-workflow.yml b/.github/workflows/run-tests-workflow.yml index 8fb09575..e64c38cc 100644 --- a/.github/workflows/run-tests-workflow.yml +++ b/.github/workflows/run-tests-workflow.yml @@ -324,11 +324,19 @@ jobs: content=$([ -s ./tests/internal/e2e/gh_e2e_summary.md ] && cat ./tests/internal/e2e/gh_e2e_summary.md || echo 'Not available') echo "${content}" >> $GITHUB_STEP_SUMMARY - mkdir e2e_vcast${{ matrix.version }}_${{ matrix.group }}_screenshots - mv tests/internal/e2e/*.png e2e_vcast${{ matrix.version }}_${{ matrix.group }}_screenshots/ - echo "SCREENSHOTS_FOLDER=e2e_vcast${{ matrix.version }}_${{ matrix.group }}_screenshots" >> $GITHUB_ENV + if compgen -G "tests/internal/e2e/*.png" > /dev/null; then + mkdir e2e_vcast${{ matrix.version }}_${{ matrix.group }}_screenshots + mv tests/internal/e2e/*.png e2e_vcast${{ matrix.version }}_${{ matrix.group }}_screenshots/ + echo "SCREENSHOTS_FOLDER=e2e_vcast${{ matrix.version }}_${{ matrix.group }}_screenshots" >> $GITHUB_ENV + echo "HAS_SCREENSHOTS=true" >> $GITHUB_ENV + else + echo "No PNG files found, skipping screenshot folder creation" + echo "HAS_SCREENSHOTS=false" >> $GITHUB_ENV + fi + shell: bash - name: Upload screenshots artifact + if: env.HAS_SCREENSHOTS == 'true' uses: actions/upload-artifact@v4 with: name: ${{ env.SCREENSHOTS_FOLDER }} From f024e3d58a22c6a2d5f8ccfc502da57880085be9 Mon Sep 17 00:00:00 2001 From: SalvatoreZagaria Date: Fri, 15 Aug 2025 15:31:00 +0100 Subject: [PATCH 5/9] Enhance CI workflow with unconditional step execution for artifact upload and dependency caching. --- .github/workflows/run-tests-workflow.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run-tests-workflow.yml b/.github/workflows/run-tests-workflow.yml index e64c38cc..1ae70a95 100644 --- a/.github/workflows/run-tests-workflow.yml +++ b/.github/workflows/run-tests-workflow.yml @@ -336,14 +336,14 @@ jobs: shell: bash - name: Upload screenshots artifact - if: env.HAS_SCREENSHOTS == 'true' + if: always() && env.HAS_SCREENSHOTS == 'true' uses: actions/upload-artifact@v4 with: name: ${{ env.SCREENSHOTS_FOLDER }} path: ${{ env.SCREENSHOTS_FOLDER }} - name: Save dependencies - node - if: steps.cache-dependencies-restore-node.outputs.cache-hit != 'true' + if: always() && steps.cache-dependencies-restore-node.outputs.cache-hit != 'true' uses: actions/cache/save@v4 with: path: | From 889bbd319dd8ea33f32e84c34358d2284bfb610a Mon Sep 17 00:00:00 2001 From: SalvatoreZagaria Date: Mon, 18 Aug 2025 15:22:44 +0100 Subject: [PATCH 6/9] Fix typo in secret reference from `GHRC_TOKEN` to `GHCR_TOKEN` in CI workflow. --- .github/workflows/run-tests-workflow.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/run-tests-workflow.yml b/.github/workflows/run-tests-workflow.yml index e0b8d3e9..d73a349c 100644 --- a/.github/workflows/run-tests-workflow.yml +++ b/.github/workflows/run-tests-workflow.yml @@ -28,7 +28,7 @@ jobs: options: --user vcast_user credentials: username: ${{ github.actor }} - password: ${{ secrets.GHRC_TOKEN }} + password: ${{ secrets.GHCR_TOKEN }} strategy: fail-fast: false # ⬅ allow all matrix versions to run even if one fails @@ -175,7 +175,7 @@ jobs: options: --user vcast_user credentials: username: ${{ github.actor }} - password: ${{ secrets.GHRC_TOKEN }} + password: ${{ secrets.GHCR_TOKEN }} outputs: version_group_matrix: ${{ steps.set-matrix.outputs.matrix }} @@ -218,7 +218,7 @@ jobs: options: --user vcast_user credentials: username: ${{ github.actor }} - password: ${{ secrets.GHRC_TOKEN }} + password: ${{ secrets.GHCR_TOKEN }} strategy: # ⬅ let all groups run even if one fails @@ -375,7 +375,7 @@ jobs: options: --user vcast_user credentials: username: ${{ github.actor }} - password: ${{ secrets.GHRC_TOKEN }} + password: ${{ secrets.GHCR_TOKEN }} steps: - name: Check out repository @@ -429,7 +429,7 @@ jobs: options: --user vcast_user credentials: username: ${{ github.actor }} - password: ${{ secrets.GHRC_TOKEN }} + password: ${{ secrets.GHCR_TOKEN }} steps: - name: Check out repository @@ -484,7 +484,7 @@ jobs: options: --user vcast_user credentials: username: ${{ github.actor }} - password: ${{ secrets.GHRC_TOKEN }} + password: ${{ secrets.GHCR_TOKEN }} steps: - name: Check out repository From 58be023a10a40fd03d3bdf6b6c039f2dd714eb17 Mon Sep 17 00:00:00 2001 From: Denis Moslavac Date: Fri, 7 Nov 2025 09:04:49 +0100 Subject: [PATCH 7/9] Trying new pull reqs2test --- .github/workflows/run-tests-workflow.yml | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/.github/workflows/run-tests-workflow.yml b/.github/workflows/run-tests-workflow.yml index b04c0ad0..789cd5c8 100644 --- a/.github/workflows/run-tests-workflow.yml +++ b/.github/workflows/run-tests-workflow.yml @@ -91,21 +91,31 @@ jobs: - name: Pull latest reqs2tests release shell: bash + env: + R2T_RELEASE_URL_LIN: ${{ env.R2T_RELEASE_URL_LIN }} + R2T_RELEASE_URL_WIN: ${{ env.R2T_RELEASE_URL_WIN }} + R2T_RELEASE_BRANCH: ${{ env.R2T_RELEASE_BRANCH }} run: | - python3 ./ci/get_most_recent_reqs2tests_distribution.py - if [ ! -f "autoreq-linux.tar.gz" ]; then - echo "Error: autoreq-linux.tar.gz not found." - exit 1 + # If URLs are provided, download directly + if [[ -n "$R2T_RELEASE_URL_LIN" && -n "$R2T_RELEASE_URL_WIN" ]]; then + wget "$R2T_RELEASE_URL_LIN" -O autoreq-linux.tar.gz + wget "$R2T_RELEASE_URL_WIN" -O autoreq-win.tar.gz + else + echo "No direct download URLs provided — falling back to branch lookup: $R2T_RELEASE_BRANCH" + python3 ./ci/get_most_recent_reqs2tests_distribution.py --branch "$R2T_RELEASE_BRANCH" fi - if [ ! -f "autoreq-win.tar.gz" ]; then - echo "Error: autoreq-win.tar.gz not found." + + if [ ! -f "autoreq-linux.tar.gz" ] || [ ! -f "autoreq-win.tar.gz" ]; then + echo "ERROR: reqs2tests bundle not found via URLs or branch: $R2T_RELEASE_BRANCH" exit 1 fi + tar -xf autoreq-linux.tar.gz > /dev/null && rm autoreq-linux.tar.gz mv distribution /tmp/linux_distribution tar -xf autoreq-win.tar.gz > /dev/null && rm autoreq-win.tar.gz mv distribution /tmp/win_distribution + - name: Vcast activation run: | RELEASE_DIR=/vcast/${{ matrix.vcast }} From 848850551f05fdfa2bbab5920595436832ea854c Mon Sep 17 00:00:00 2001 From: Denis Moslavac Date: Fri, 7 Nov 2025 09:14:06 +0100 Subject: [PATCH 8/9] Adapted env vars --- .github/workflows/run-tests-workflow.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/run-tests-workflow.yml b/.github/workflows/run-tests-workflow.yml index 789cd5c8..7e9e91de 100644 --- a/.github/workflows/run-tests-workflow.yml +++ b/.github/workflows/run-tests-workflow.yml @@ -92,9 +92,9 @@ jobs: - name: Pull latest reqs2tests release shell: bash env: - R2T_RELEASE_URL_LIN: ${{ env.R2T_RELEASE_URL_LIN }} - R2T_RELEASE_URL_WIN: ${{ env.R2T_RELEASE_URL_WIN }} - R2T_RELEASE_BRANCH: ${{ env.R2T_RELEASE_BRANCH }} + R2T_RELEASE_BRANCH: ${{ github.event.inputs.r2t-release-branch || vars.R2T_RELEASE_BRANCH || 'demo_release' }} + R2T_RELEASE_URL_LIN: ${{ github.event.inputs.r2t-release-url-linux || '' }} + R2T_RELEASE_URL_WIN: ${{ github.event.inputs.r2t-release-url-win || '' }} run: | # If URLs are provided, download directly if [[ -n "$R2T_RELEASE_URL_LIN" && -n "$R2T_RELEASE_URL_WIN" ]]; then From 2bd9da739d3e3a4b7b82b4805e3a38bb2713cee6 Mon Sep 17 00:00:00 2001 From: Denis Moslavac Date: Fri, 7 Nov 2025 09:22:49 +0100 Subject: [PATCH 9/9] Adapted pull reqs --- .github/workflows/run-tests-workflow.yml | 69 ++++++++++++++++++------ 1 file changed, 54 insertions(+), 15 deletions(-) diff --git a/.github/workflows/run-tests-workflow.yml b/.github/workflows/run-tests-workflow.yml index 7e9e91de..6b1454d2 100644 --- a/.github/workflows/run-tests-workflow.yml +++ b/.github/workflows/run-tests-workflow.yml @@ -91,30 +91,70 @@ jobs: - name: Pull latest reqs2tests release shell: bash - env: - R2T_RELEASE_BRANCH: ${{ github.event.inputs.r2t-release-branch || vars.R2T_RELEASE_BRANCH || 'demo_release' }} - R2T_RELEASE_URL_LIN: ${{ github.event.inputs.r2t-release-url-linux || '' }} - R2T_RELEASE_URL_WIN: ${{ github.event.inputs.r2t-release-url-win || '' }} run: | - # If URLs are provided, download directly - if [[ -n "$R2T_RELEASE_URL_LIN" && -n "$R2T_RELEASE_URL_WIN" ]]; then - wget "$R2T_RELEASE_URL_LIN" -O autoreq-linux.tar.gz - wget "$R2T_RELEASE_URL_WIN" -O autoreq-win.tar.gz - else - echo "No direct download URLs provided — falling back to branch lookup: $R2T_RELEASE_BRANCH" - python3 ./ci/get_most_recent_reqs2tests_distribution.py --branch "$R2T_RELEASE_BRANCH" + python3 ./ci/get_most_recent_reqs2tests_distribution.py + if [ ! -f "autoreq-linux.tar.gz" ]; then + echo "Error: autoreq-linux.tar.gz not found." + exit 1 fi - - if [ ! -f "autoreq-linux.tar.gz" ] || [ ! -f "autoreq-win.tar.gz" ]; then - echo "ERROR: reqs2tests bundle not found via URLs or branch: $R2T_RELEASE_BRANCH" + if [ ! -f "autoreq-win.tar.gz" ]; then + echo "Error: autoreq-win.tar.gz not found." exit 1 fi + # extract linux distribution tar -xf autoreq-linux.tar.gz > /dev/null && rm autoreq-linux.tar.gz mv distribution /tmp/linux_distribution + + # Preferred location: $HOME/reqs2tests/resources/distribution + HOME_TARGET="$HOME/reqs2tests/resources/distribution" + WORKSPACE_TARGET="$GITHUB_WORKSPACE/resources/distribution" + + # Try to create and copy into $HOME target; if that fails, fallback to workspace + if mkdir -p "$HOME_TARGET" 2>/dev/null && cp -r /tmp/linux_distribution/* "$HOME_TARGET/"; then + REQS_PATH="$HOME_TARGET" + echo "Copied reqs2tests distribution to HOME target: $REQS_PATH" + else + echo "Could not use HOME target ($HOME_TARGET). Falling back to GITHUB_WORKSPACE." + mkdir -p "$WORKSPACE_TARGET" + cp -r /tmp/linux_distribution/* "$WORKSPACE_TARGET/" + REQS_PATH="$WORKSPACE_TARGET" + echo "Copied reqs2tests distribution to workspace target: $REQS_PATH" + fi + + # Export the distribution folder path (this will be available to subsequent steps) + echo "REQS2TESTS_RESOURCES=$REQS_PATH/bin" >> $GITHUB_ENV + echo "REQS2TESTS_RESOURCES set to: $REQS_PATH/bin" + + # Debug listing of the distribution folder + echo "Listing REQS2TESTS_RESOURCES contents: $REQS_PATH" + if command -v tree >/dev/null 2>&1; then + tree -a "$REQS_PATH" || ls -laR "$REQS_PATH" + else + ls -laR "$REQS_PATH" + fi + + # extract windows distribution for other uses (kept in /tmp) tar -xf autoreq-win.tar.gz > /dev/null && rm autoreq-win.tar.gz mv distribution /tmp/win_distribution + TARGET_DIR="$GITHUB_WORKSPACE/tests/internal/e2e/test" + echo "Listing all files and directories under: $TARGET_DIR" + if [ -d "$TARGET_DIR" ]; then + echo "----------------------------------------" + # Show a tree-like listing if available (nicer output) + if command -v tree >/dev/null 2>&1; then + tree -a "$TARGET_DIR" + else + ls -laR "$TARGET_DIR" + fi + echo "----------------------------------------" + else + echo "Directory not found: $TARGET_DIR" + echo "Listing parent directories for context:" + ls -la "$(dirname "$TARGET_DIR")" || true + fi + - name: Vcast activation run: | @@ -473,7 +513,6 @@ jobs: fi - - name: Package with VSCE run: | # Build a normal .vsix WITHOUT including the reqs2tests resources (we copied them to $GITHUB_WORKSPACE/resources)