From c8cda914552a7c45daeb60b272144625cb062310 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 18 Jan 2026 19:18:22 +0000 Subject: [PATCH 1/3] Initial plan From fa66847450eb4dc1f66f03eef5d9688ec283de69 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 18 Jan 2026 19:24:27 +0000 Subject: [PATCH 2/3] Add vfox e2e workflow Co-authored-by: bytemain <13938334+bytemain@users.noreply.github.com> --- .github/workflows/e2e.yaml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/e2e.yaml diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml new file mode 100644 index 0000000..75d924e --- /dev/null +++ b/.github/workflows/e2e.yaml @@ -0,0 +1,27 @@ +name: End-to-End Test + +on: + pull_request: + push: + branches: [main, master] + workflow_dispatch: + +permissions: + contents: read + +jobs: + e2e: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Install vfox + uses: version-fox/install-vfox-action@v1 + - name: Add java plugin from repo + run: vfox add --source "${GITHUB_WORKSPACE}" java + - name: Search java versions + run: vfox search java tem + - name: Install Java + run: vfox install java@17.0.17-tem + - name: Verify Java install + run: vfox list java From 544dc968505e3cdf427c7325b99906adc5857a75 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 18 Jan 2026 19:41:00 +0000 Subject: [PATCH 3/3] Update e2e workflow vfox install flow Co-authored-by: bytemain <13938334+bytemain@users.noreply.github.com> --- .github/workflows/e2e.yaml | 57 ++++++++++++++++++++++++++++++++------ 1 file changed, 48 insertions(+), 9 deletions(-) diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml index 75d924e..a9e0c15 100644 --- a/.github/workflows/e2e.yaml +++ b/.github/workflows/e2e.yaml @@ -15,13 +15,52 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 + - name: Compress build files + uses: thedoctor0/zip-release@0.7.6 + with: + type: "zip" + directory: "./" + filename: "release.zip" + exclusions: ".git/** .gitignore .github/** README.*" - name: Install vfox - uses: version-fox/install-vfox-action@v1 - - name: Add java plugin from repo - run: vfox add --source "${GITHUB_WORKSPACE}" java - - name: Search java versions - run: vfox search java tem - - name: Install Java - run: vfox install java@17.0.17-tem - - name: Verify Java install - run: vfox list java + shell: bash + run: | + set -euo pipefail + install_script="$(mktemp)" + # Pinned install.sh from the v1.0.3 tag (commit below); verify with: + # git ls-remote https://github.com/version-fox/vfox.git refs/tags/v1.0.3^{} + install_commit="0006386f97ed08d4eca5917ba6ace2736f31fb5f" + # SHA256 from: curl -sS https://raw.githubusercontent.com/version-fox/vfox/${install_commit}/install.sh | sha256sum + # Recalculate this hash when updating or auditing the pinned script. + install_sha="7b11beb7b826ab50e46c85a09e26f1c9b8a7ee7e71d3ea4c2588fe413ed0e210" + curl -sSLo "$install_script" "https://raw.githubusercontent.com/version-fox/vfox/${install_commit}/install.sh" + echo "${install_sha} ${install_script}" | sha256sum -c - + max_retries=10 + retry_delay=5 + # Retry install for up to 10 attempts (5s delay) to handle transient network issues (up to 45s delay). + installed=false + for attempt in $(seq 1 "$max_retries"); do + if bash "$install_script"; then + installed=true + break + fi + if [ "$attempt" -lt "$max_retries" ]; then + sleep "$retry_delay" + fi + done + rm -f "$install_script" + if [ "$installed" != "true" ]; then + echo "Failed to install vfox" + exit 1 + fi + vfox --version + - name: Install plugin + run: vfox add --source "${GITHUB_WORKSPACE}/release.zip" java + - name: Install Java 17.0.17-tem + run: | + set -euo pipefail + eval "$(vfox activate bash)" + vfox search java tem + vfox install java@17.0.17-tem + vfox use -g java@17.0.17-tem + vfox current