From 8b6b4ac22525bc283c6443b6315fa0e23561c4a6 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Mon, 8 Sep 2025 21:33:52 +0100 Subject: [PATCH 01/43] Create E2E test workflow --- .github/workflows/e2e_tests.yaml | 73 ++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 .github/workflows/e2e_tests.yaml diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml new file mode 100644 index 0000000..ccf803b --- /dev/null +++ b/.github/workflows/e2e_tests.yaml @@ -0,0 +1,73 @@ +name: E2E Tests + +on: + pull_request: + branches: [ "**" ] + workflow_dispatch: + +jobs: + build-macos: + name: Build macOS Binary + runs-on: macos-13 + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install uv + uses: astral-sh/setup-uv@v5 + with: + version: "0.7.2" + enable-cache: true + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version-file: 'pyproject.toml' + + - name: Install and build + run: | + make install + source .venv/bin/activate || source env/bin/activate || true + make bundle + + - name: List dist contents + run: | + ls -lah dist || true + + - name: Upload built artifact + uses: actions/upload-artifact@v4 + with: + name: rml-macos-tarball + path: dist/rml-darwin-*.tar.gz + + test-macos-clean: + name: Test macOS Binary in Clean Env + needs: build-macos + runs-on: macos-13 + steps: + - name: Download artifact only (no checkout) + uses: actions/download-artifact@v4 + with: + name: rml-macos-tarball + path: artifact + + - name: Extract binary + run: | + mkdir -p dist/extracted + TAR_FILE=$(ls artifact/rml-darwin-*.tar.gz | head -n1) + echo "Using tarball: $TAR_FILE" + tar -xzf "$TAR_FILE" -C dist/extracted + echo "BIN_DIR=dist/extracted/rml" >> $GITHUB_ENV + + - name: Add binary to PATH + run: | + echo "PATH=$BIN_DIR:$PATH" >> $GITHUB_ENV + + - name: Smoke test binary in clean shell + shell: bash -l {0} + run: | + set -euxo pipefail + "$BIN_DIR/rml" --version + "$BIN_DIR/rml" -md --help + + From 1e7490ba40c6bb0826a67138ba466c7bc7375de5 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 15:10:48 +0100 Subject: [PATCH 02/43] Ignore .env.rml --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 00fa052..0b98e85 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ __pycache__/ *.py[cod] *$py.class +.env.rml # C extensions *.so From c0e566bc90736554b0faa2c1fabae207c874a11f Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 15:15:55 +0100 Subject: [PATCH 03/43] Implement initial e2e test --- .github/workflows/e2e_tests.yaml | 67 ++++++++++++++++++++++---------- tests/e2e/test_e2e.py | 21 ++++++++++ 2 files changed, 68 insertions(+), 20 deletions(-) create mode 100644 tests/e2e/test_e2e.py diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index ccf803b..e7ed457 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -6,9 +6,9 @@ on: workflow_dispatch: jobs: - build-macos: - name: Build macOS Binary - runs-on: macos-13 + build-linux: + name: Build + runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 @@ -27,47 +27,74 @@ jobs: - name: Install and build run: | make install - source .venv/bin/activate || source env/bin/activate || true + source env/bin/activate make bundle - - name: List dist contents - run: | - ls -lah dist || true - - name: Upload built artifact uses: actions/upload-artifact@v4 with: - name: rml-macos-tarball - path: dist/rml-darwin-*.tar.gz + name: rml-linux-tarball + path: dist/rml-linux-*.tar.gz + + - name: Upload e2e test file + uses: actions/upload-artifact@v4 + with: + name: e2e-test-file + path: tests/e2e/test_e2e.py + + - name: Add binary to PATH + run: echo "$BIN_DIR" >> $GITHUB_PATH + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.11' - test-macos-clean: - name: Test macOS Binary in Clean Env - needs: build-macos - runs-on: macos-13 + + test-linux-clean: + name: Test + needs: build-linux + runs-on: ubuntu-latest steps: - name: Download artifact only (no checkout) uses: actions/download-artifact@v4 with: - name: rml-macos-tarball + name: rml-linux-tarball path: artifact + - name: Download e2e test file + uses: actions/download-artifact@v4 + with: + name: e2e-test-file + path: e2e-test + - name: Extract binary run: | mkdir -p dist/extracted - TAR_FILE=$(ls artifact/rml-darwin-*.tar.gz | head -n1) + TAR_FILE=$(ls artifact/rml-linux-*.tar.gz | head -n1) echo "Using tarball: $TAR_FILE" tar -xzf "$TAR_FILE" -C dist/extracted echo "BIN_DIR=dist/extracted/rml" >> $GITHUB_ENV - name: Add binary to PATH - run: | - echo "PATH=$BIN_DIR:$PATH" >> $GITHUB_ENV + run: echo "$BIN_DIR" >> $GITHUB_PATH + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Install pytest + run: pip install pytest - name: Smoke test binary in clean shell shell: bash -l {0} run: | set -euxo pipefail - "$BIN_DIR/rml" --version - "$BIN_DIR/rml" -md --help + rml --version + rml -md --help + + - name: Run e2e test file + run: pytest -q e2e-test/test_e2e.py diff --git a/tests/e2e/test_e2e.py b/tests/e2e/test_e2e.py new file mode 100644 index 0000000..9c5c6a8 --- /dev/null +++ b/tests/e2e/test_e2e.py @@ -0,0 +1,21 @@ +import os +import subprocess + + +def test_e2e(): + bug_branch = os.environ["BUG_BRANCH"] + assert bug_branch is not None, "BUG_BRANCH is not set" + result = subprocess.run( + [ + "rml", + "-md", + "--from", + bug_branch, + "--to", + "main", + ], + capture_output=True, + text=True, + ) + assert result.returncode == 0 + # TODO (Armin): verify reported output From 0ade943ee5f988aa598ec5999a94016218adeb86 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 15:19:08 +0100 Subject: [PATCH 04/43] Fix virtualenv path --- .github/workflows/e2e_tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index e7ed457..ac92d4f 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -27,7 +27,7 @@ jobs: - name: Install and build run: | make install - source env/bin/activate + source .venv/bin/activate make bundle - name: Upload built artifact From 45e63c3c77be5863e3f554709d1344708e22380f Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 15:22:48 +0100 Subject: [PATCH 05/43] Fix env var presence check --- tests/e2e/test_e2e.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/test_e2e.py b/tests/e2e/test_e2e.py index 9c5c6a8..920a66e 100644 --- a/tests/e2e/test_e2e.py +++ b/tests/e2e/test_e2e.py @@ -3,7 +3,7 @@ def test_e2e(): - bug_branch = os.environ["BUG_BRANCH"] + bug_branch = os.environ.get("BUG_BRANCH") assert bug_branch is not None, "BUG_BRANCH is not set" result = subprocess.run( [ From dfafdf02ed1924232d8bcf807e7587fe2c69cc21 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 15:39:24 +0100 Subject: [PATCH 06/43] Clone the test repo --- .github/workflows/e2e_tests.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index ac92d4f..0324220 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -93,8 +93,15 @@ jobs: set -euxo pipefail rml --version rml -md --help + - name: Clone recurse-e2e-test-repo + uses: actions/checkout@v5 + with: + repository: Recurse-ML/recurse-e2e-test + ref: e2e-test-branch - name: Run e2e test file + env: + BUG_BRANCH: "e2e-test-branch" run: pytest -q e2e-test/test_e2e.py From 44ece5599905bd82ee52a4bfda4bfee70b6f7a48 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 15:42:55 +0100 Subject: [PATCH 07/43] Fix repo name --- .github/workflows/e2e_tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 0324220..9a3651b 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -96,7 +96,7 @@ jobs: - name: Clone recurse-e2e-test-repo uses: actions/checkout@v5 with: - repository: Recurse-ML/recurse-e2e-test + repository: Recurse-ML/recurse-e2e-test-repo ref: e2e-test-branch - name: Run e2e test file From a2d1bc9fddc96ab4b1931f8f33df6b691649fcf8 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 16:10:24 +0100 Subject: [PATCH 08/43] Authenticate for private repo --- .github/workflows/e2e_tests.yaml | 34 ++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 9a3651b..429179e 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Install uv uses: astral-sh/setup-uv@v5 @@ -55,6 +55,9 @@ jobs: name: Test needs: build-linux runs-on: ubuntu-latest + permissions: + contents: read + id-token: write # Required for OIDC/Workload Identity Federation steps: - name: Download artifact only (no checkout) uses: actions/download-artifact@v4 @@ -93,15 +96,38 @@ jobs: set -euxo pipefail rml --version rml -md --help + + - name: Authenticate with Google Cloud + uses: 'google-github-actions/auth@v2' + with: + project_id: 'cerebral-af' + workload_identity_provider: 'projects/322339097191/locations/global/workloadIdentityPools/github/providers/squash' + + + - name: Get GCP Secrets + id: gcp-secrets + uses: google-github-actions/get-secretmanager-secrets@v2 + with: + secrets: | + app_id: cerebral-af/secrets/E2E_GITHUB_APP_ID + app_secret: cerebral-af/secrets/E2E_GH_APP_SECRET + + - name: Generate GitHub App Token + id: app-token + uses: actions/create-github-app-token@v1 + with: + app-id: ${{ steps.gcp-secrets.outputs.app_id }} + private-key: ${{ steps.gcp-secrets.outputs.app_secret }} + owner: Recurse-ML + - name: Clone recurse-e2e-test-repo uses: actions/checkout@v5 with: repository: Recurse-ML/recurse-e2e-test-repo ref: e2e-test-branch + token: ${{ steps.app-token.outputs.token }} - name: Run e2e test file env: BUG_BRANCH: "e2e-test-branch" - run: pytest -q e2e-test/test_e2e.py - - + run: pytest -q e2e-test/test_e2e.py \ No newline at end of file From b31ce6c07d9c1a1ba2ff9edc16c516701997fd90 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 16:14:02 +0100 Subject: [PATCH 09/43] Fix secret path --- .github/workflows/e2e_tests.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 429179e..4fefe5a 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -109,8 +109,8 @@ jobs: uses: google-github-actions/get-secretmanager-secrets@v2 with: secrets: | - app_id: cerebral-af/secrets/E2E_GITHUB_APP_ID - app_secret: cerebral-af/secrets/E2E_GH_APP_SECRET + app_id: E2E_GITHUB_APP_ID + app_secret: E2E_GH_APP_SECRET - name: Generate GitHub App Token id: app-token From aeb14a710dccdeb7247818e78209b30f2d56a8a7 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 16:29:43 +0100 Subject: [PATCH 10/43] Fix secret formatting --- .github/workflows/e2e_tests.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 4fefe5a..344149a 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -109,8 +109,8 @@ jobs: uses: google-github-actions/get-secretmanager-secrets@v2 with: secrets: | - app_id: E2E_GITHUB_APP_ID - app_secret: E2E_GH_APP_SECRET + app_id:E2E_GITHUB_APP_ID + app_secret:E2E_GH_APP_SECRET - name: Generate GitHub App Token id: app-token From c89181cda03e7504abff9acdd228296565384d75 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 16:36:12 +0100 Subject: [PATCH 11/43] Add project name to secrets --- .github/workflows/e2e_tests.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 344149a..be12f3b 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -106,11 +106,11 @@ jobs: - name: Get GCP Secrets id: gcp-secrets - uses: google-github-actions/get-secretmanager-secrets@v2 + uses: google-github-actions/get-secretmanager-secrets@v3 with: secrets: | - app_id:E2E_GITHUB_APP_ID - app_secret:E2E_GH_APP_SECRET + app_id:cerebral-af/E2E_GITHUB_APP_ID + app_secret:cerebral-af/E2E_GH_APP_SECRET - name: Generate GitHub App Token id: app-token From 9b3bd8d74cb4f6088f4096c9234847778c3021ca Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 17:35:06 +0100 Subject: [PATCH 12/43] Use a public repo for tests --- .github/workflows/e2e_tests.yaml | 28 ++-------------------------- 1 file changed, 2 insertions(+), 26 deletions(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index be12f3b..275ba31 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -97,35 +97,11 @@ jobs: rml --version rml -md --help - - name: Authenticate with Google Cloud - uses: 'google-github-actions/auth@v2' - with: - project_id: 'cerebral-af' - workload_identity_provider: 'projects/322339097191/locations/global/workloadIdentityPools/github/providers/squash' - - - - name: Get GCP Secrets - id: gcp-secrets - uses: google-github-actions/get-secretmanager-secrets@v3 - with: - secrets: | - app_id:cerebral-af/E2E_GITHUB_APP_ID - app_secret:cerebral-af/E2E_GH_APP_SECRET - - - name: Generate GitHub App Token - id: app-token - uses: actions/create-github-app-token@v1 - with: - app-id: ${{ steps.gcp-secrets.outputs.app_id }} - private-key: ${{ steps.gcp-secrets.outputs.app_secret }} - owner: Recurse-ML - - - name: Clone recurse-e2e-test-repo + - name: Clone rml-e2e-test uses: actions/checkout@v5 with: - repository: Recurse-ML/recurse-e2e-test-repo + repository: Recurse-ML/rml-e2e-test ref: e2e-test-branch - token: ${{ steps.app-token.outputs.token }} - name: Run e2e test file env: From ab8280a14939e8ccc0fa996d7e6598b70594a568 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 17:38:04 +0100 Subject: [PATCH 13/43] Fix test path --- .github/workflows/e2e_tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 275ba31..8b89f3b 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -106,4 +106,4 @@ jobs: - name: Run e2e test file env: BUG_BRANCH: "e2e-test-branch" - run: pytest -q e2e-test/test_e2e.py \ No newline at end of file + run: pytest -q e2e-test/tests/e2e/test_e2e.py \ No newline at end of file From 99915afe00f20d8ae6fe09092cd5f4fe4f3e0f82 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 17:46:01 +0100 Subject: [PATCH 14/43] Put test_e2e.py in the root of test dir --- .github/workflows/e2e_tests.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 8b89f3b..2b6b530 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -68,8 +68,7 @@ jobs: - name: Download e2e test file uses: actions/download-artifact@v4 with: - name: e2e-test-file - path: e2e-test + name: tests/e2e/test_e2e.py - name: Extract binary run: | @@ -106,4 +105,4 @@ jobs: - name: Run e2e test file env: BUG_BRANCH: "e2e-test-branch" - run: pytest -q e2e-test/tests/e2e/test_e2e.py \ No newline at end of file + run: pytest -q test_e2e.py \ No newline at end of file From eb2b9fd0575ba23b45c9a29935aec187c99ed2a1 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 17:48:38 +0100 Subject: [PATCH 15/43] Modify the download artifact path --- .github/workflows/e2e_tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 2b6b530..cedddc4 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -68,7 +68,7 @@ jobs: - name: Download e2e test file uses: actions/download-artifact@v4 with: - name: tests/e2e/test_e2e.py + name: test_e2e.py - name: Extract binary run: | From 46dfc0ad987e387503c7005cf81c8f31d6bb57f9 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 17:50:05 +0100 Subject: [PATCH 16/43] Only download the test file --- .github/workflows/e2e_tests.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index cedddc4..8153b07 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -39,8 +39,7 @@ jobs: - name: Upload e2e test file uses: actions/upload-artifact@v4 with: - name: e2e-test-file - path: tests/e2e/test_e2e.py + name: tests/e2e/test_e2e.py - name: Add binary to PATH run: echo "$BIN_DIR" >> $GITHUB_PATH From b0c3fc7ae2c32c557095a1a215724768d4b58cd1 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 17:53:19 +0100 Subject: [PATCH 17/43] Update download-artifact version --- .github/workflows/e2e_tests.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 8153b07..898efc7 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -37,7 +37,7 @@ jobs: path: dist/rml-linux-*.tar.gz - name: Upload e2e test file - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: tests/e2e/test_e2e.py @@ -65,7 +65,7 @@ jobs: path: artifact - name: Download e2e test file - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: name: test_e2e.py From 73f911d84aa1a4d25d88ad1cf4accc1a7ddb2b7e Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 18:02:50 +0100 Subject: [PATCH 18/43] Downgrade upload-artifact --- .github/workflows/e2e_tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 898efc7..f5fe84f 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -37,7 +37,7 @@ jobs: path: dist/rml-linux-*.tar.gz - name: Upload e2e test file - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v4 with: name: tests/e2e/test_e2e.py From b50d41b8a2bbc7efcd7306d1928fc1c5c921b428 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 18:11:38 +0100 Subject: [PATCH 19/43] Specify artifact to upload --- .github/workflows/e2e_tests.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index f5fe84f..c473132 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -39,7 +39,8 @@ jobs: - name: Upload e2e test file uses: actions/upload-artifact@v4 with: - name: tests/e2e/test_e2e.py + name: test_e2e.py + path: tests/e2e/test_e2e.py - name: Add binary to PATH run: echo "$BIN_DIR" >> $GITHUB_PATH From cf37d2db9c02ac00dd672c95440b5dad684108eb Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 18:30:03 +0100 Subject: [PATCH 20/43] Specify the full path for test_e2e.py --- .github/workflows/e2e_tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index c473132..6d1d05a 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -105,4 +105,4 @@ jobs: - name: Run e2e test file env: BUG_BRANCH: "e2e-test-branch" - run: pytest -q test_e2e.py \ No newline at end of file + run: pytest -q tests/e2e/test_e2e.py \ No newline at end of file From ae18955cbfc0a9590f0ffcda80bc821f1e6aef18 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 18:35:58 +0100 Subject: [PATCH 21/43] Print a tree for debugging --- .github/workflows/e2e_tests.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 6d1d05a..c76bdfc 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -102,6 +102,9 @@ jobs: repository: Recurse-ML/rml-e2e-test ref: e2e-test-branch + - name: tree + run: tree -L 5 + - name: Run e2e test file env: BUG_BRANCH: "e2e-test-branch" From 3e43104fe4a85c8f3074e43e953b5b51c640053c Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 18:38:11 +0100 Subject: [PATCH 22/43] Modify test_e2e.py location --- .github/workflows/e2e_tests.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index c76bdfc..a94da5a 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -69,6 +69,7 @@ jobs: uses: actions/download-artifact@v5 with: name: test_e2e.py + path: artifact - name: Extract binary run: | @@ -102,10 +103,10 @@ jobs: repository: Recurse-ML/rml-e2e-test ref: e2e-test-branch - - name: tree - run: tree -L 5 + - name: artifact tree + run: tree -L 3 artifact - name: Run e2e test file env: BUG_BRANCH: "e2e-test-branch" - run: pytest -q tests/e2e/test_e2e.py \ No newline at end of file + run: pytest -q artifact/tests/e2e/test_e2e.py \ No newline at end of file From 53c42e697dc479ed829418a16a822dd716f0e04d Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 18:41:16 +0100 Subject: [PATCH 23/43] Debug path --- .github/workflows/e2e_tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index a94da5a..0dbde45 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -104,7 +104,7 @@ jobs: ref: e2e-test-branch - name: artifact tree - run: tree -L 3 artifact + run: tree -L 3 . - name: Run e2e test file env: From 0b6e05e6985c035be7289e5392302755035a064d Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 18:43:52 +0100 Subject: [PATCH 24/43] Explicitly specify working dir --- .github/workflows/e2e_tests.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 0dbde45..1fa47e8 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -104,9 +104,11 @@ jobs: ref: e2e-test-branch - name: artifact tree + working-directory: "/home/runner/work/rml/rml/" run: tree -L 3 . - name: Run e2e test file + working-directory: "/home/runner/work/rml/rml/" env: BUG_BRANCH: "e2e-test-branch" run: pytest -q artifact/tests/e2e/test_e2e.py \ No newline at end of file From 7465be4f4b114652ce487dec13dfb8470e5889e9 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 18:47:51 +0100 Subject: [PATCH 25/43] Explicitly specify repo location --- .github/workflows/e2e_tests.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 1fa47e8..2d3f913 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -102,6 +102,7 @@ jobs: with: repository: Recurse-ML/rml-e2e-test ref: e2e-test-branch + path: rml-e2e-test - name: artifact tree working-directory: "/home/runner/work/rml/rml/" From 8941c2bba82cc87426b849509acf1748ca1db7fc Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 18:52:39 +0100 Subject: [PATCH 26/43] Fix test_e2e.py path --- .github/workflows/e2e_tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 2d3f913..c0cf1ba 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -112,4 +112,4 @@ jobs: working-directory: "/home/runner/work/rml/rml/" env: BUG_BRANCH: "e2e-test-branch" - run: pytest -q artifact/tests/e2e/test_e2e.py \ No newline at end of file + run: pytest -q artifact/test_e2e.py \ No newline at end of file From 28791112ccb04b76217e36b4ca4fcdbb8c389753 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 20:49:59 +0100 Subject: [PATCH 27/43] Add timeout --- .github/workflows/e2e_tests.yaml | 2 +- tests/e2e/test_e2e.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index c0cf1ba..f58de6c 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -106,7 +106,7 @@ jobs: - name: artifact tree working-directory: "/home/runner/work/rml/rml/" - run: tree -L 3 . + run: tree -L 5 . - name: Run e2e test file working-directory: "/home/runner/work/rml/rml/" diff --git a/tests/e2e/test_e2e.py b/tests/e2e/test_e2e.py index 920a66e..32779da 100644 --- a/tests/e2e/test_e2e.py +++ b/tests/e2e/test_e2e.py @@ -1,7 +1,10 @@ import os import subprocess +import pytest + +@pytest.mark.timeout(300) def test_e2e(): bug_branch = os.environ.get("BUG_BRANCH") assert bug_branch is not None, "BUG_BRANCH is not set" From 26c6ff4eafb908046648335ce4ba567c79e6ba80 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 21:00:22 +0100 Subject: [PATCH 28/43] Add authentication --- .github/workflows/e2e_tests.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index f58de6c..4d5a08a 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -77,6 +77,7 @@ jobs: TAR_FILE=$(ls artifact/rml-linux-*.tar.gz | head -n1) echo "Using tarball: $TAR_FILE" tar -xzf "$TAR_FILE" -C dist/extracted + echo "${{ secrets.E2E_TEST_RML_KEY }}" > dist/extracted/rml/.env.rml echo "BIN_DIR=dist/extracted/rml" >> $GITHUB_ENV - name: Add binary to PATH @@ -104,10 +105,12 @@ jobs: ref: e2e-test-branch path: rml-e2e-test + - name: artifact tree working-directory: "/home/runner/work/rml/rml/" run: tree -L 5 . + - name: Run e2e test file working-directory: "/home/runner/work/rml/rml/" env: From 6429928ecb5840bc7440d310bcd2a8c50badbeff Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 21:04:52 +0100 Subject: [PATCH 29/43] Increase test verbosity --- .github/workflows/e2e_tests.yaml | 2 +- tests/e2e/test_e2e.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 4d5a08a..5a0f942 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -115,4 +115,4 @@ jobs: working-directory: "/home/runner/work/rml/rml/" env: BUG_BRANCH: "e2e-test-branch" - run: pytest -q artifact/test_e2e.py \ No newline at end of file + run: pytest -vv artifact/test_e2e.py \ No newline at end of file diff --git a/tests/e2e/test_e2e.py b/tests/e2e/test_e2e.py index 32779da..3e9e65b 100644 --- a/tests/e2e/test_e2e.py +++ b/tests/e2e/test_e2e.py @@ -1,5 +1,6 @@ import os import subprocess +import sys import pytest @@ -17,7 +18,7 @@ def test_e2e(): "--to", "main", ], - capture_output=True, + stdout=sys.stdout, text=True, ) assert result.returncode == 0 From 1b23a312b536b2c412ff595224d31c6170d2f958 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 21:26:58 +0100 Subject: [PATCH 30/43] Fix key format --- .github/workflows/e2e_tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 5a0f942..dd8a4a6 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -77,7 +77,7 @@ jobs: TAR_FILE=$(ls artifact/rml-linux-*.tar.gz | head -n1) echo "Using tarball: $TAR_FILE" tar -xzf "$TAR_FILE" -C dist/extracted - echo "${{ secrets.E2E_TEST_RML_KEY }}" > dist/extracted/rml/.env.rml + echo "RECURSE_API_KEY=${{ secrets.E2E_TEST_RML_KEY }}" > dist/extracted/rml/.env.rml echo "BIN_DIR=dist/extracted/rml" >> $GITHUB_ENV - name: Add binary to PATH From b0f8f209655ea8672b33ca240bed990964ec79b5 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 21:42:12 +0100 Subject: [PATCH 31/43] Run the test inside of test repo --- .github/workflows/e2e_tests.yaml | 1 + tests/e2e/test_e2e.py | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index dd8a4a6..939b329 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -114,5 +114,6 @@ jobs: - name: Run e2e test file working-directory: "/home/runner/work/rml/rml/" env: + TEST_REPO: "/home/runner/work/rml/rml/rml-e2e-test" BUG_BRANCH: "e2e-test-branch" run: pytest -vv artifact/test_e2e.py \ No newline at end of file diff --git a/tests/e2e/test_e2e.py b/tests/e2e/test_e2e.py index 3e9e65b..f3bace4 100644 --- a/tests/e2e/test_e2e.py +++ b/tests/e2e/test_e2e.py @@ -1,12 +1,18 @@ import os import subprocess import sys +from pathlib import Path import pytest @pytest.mark.timeout(300) def test_e2e(): + test_repo = os.environ.get("TEST_REPO") + assert test_repo is not None, "TEST_REPO is not set" + test_repo = Path(test_repo) + assert test_repo.exists(), "TEST_REPO does not exist" + bug_branch = os.environ.get("BUG_BRANCH") assert bug_branch is not None, "BUG_BRANCH is not set" result = subprocess.run( @@ -20,6 +26,7 @@ def test_e2e(): ], stdout=sys.stdout, text=True, + cwd=test_repo, ) assert result.returncode == 0 # TODO (Armin): verify reported output From 3057c602117f90b1c63ba4c92da7442c001c35c4 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 22:02:32 +0100 Subject: [PATCH 32/43] Use the absolute path for `rml` --- tests/e2e/test_e2e.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/e2e/test_e2e.py b/tests/e2e/test_e2e.py index f3bace4..c06ff81 100644 --- a/tests/e2e/test_e2e.py +++ b/tests/e2e/test_e2e.py @@ -1,4 +1,5 @@ import os +import shutil import subprocess import sys from pathlib import Path @@ -15,9 +16,11 @@ def test_e2e(): bug_branch = os.environ.get("BUG_BRANCH") assert bug_branch is not None, "BUG_BRANCH is not set" + rml_path = shutil.which("rml") + assert rml_path is not None, "rml is not on PATH" result = subprocess.run( [ - "rml", + rml_path, "-md", "--from", bug_branch, From a2dc8a3cab52bf662209d33b8d06ff9b4257e0ca Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 22:42:58 +0100 Subject: [PATCH 33/43] Make `rml` absolute path --- .github/workflows/e2e_tests.yaml | 3 ++- tests/e2e/test_e2e.py | 5 +---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 939b329..62d7136 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -78,7 +78,8 @@ jobs: echo "Using tarball: $TAR_FILE" tar -xzf "$TAR_FILE" -C dist/extracted echo "RECURSE_API_KEY=${{ secrets.E2E_TEST_RML_KEY }}" > dist/extracted/rml/.env.rml - echo "BIN_DIR=dist/extracted/rml" >> $GITHUB_ENV + echo "BIN_DIR=$PWD/dist/extracted/rml" >> $GITHUB_ENV + - name: Add binary to PATH run: echo "$BIN_DIR" >> $GITHUB_PATH diff --git a/tests/e2e/test_e2e.py b/tests/e2e/test_e2e.py index c06ff81..f3bace4 100644 --- a/tests/e2e/test_e2e.py +++ b/tests/e2e/test_e2e.py @@ -1,5 +1,4 @@ import os -import shutil import subprocess import sys from pathlib import Path @@ -16,11 +15,9 @@ def test_e2e(): bug_branch = os.environ.get("BUG_BRANCH") assert bug_branch is not None, "BUG_BRANCH is not set" - rml_path = shutil.which("rml") - assert rml_path is not None, "rml is not on PATH" result = subprocess.run( [ - rml_path, + "rml", "-md", "--from", bug_branch, From ec1fcb4ee253ef3e2765f74d475d5a581cec2245 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 22:46:27 +0100 Subject: [PATCH 34/43] Fetch all commits in test repo --- .github/workflows/e2e_tests.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 62d7136..56e8d4e 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -105,6 +105,7 @@ jobs: repository: Recurse-ML/rml-e2e-test ref: e2e-test-branch path: rml-e2e-test + fetch-depth: 0 - name: artifact tree From 870a9e7f918ee2660a7f98ed6f644f162f9ac5fb Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 22:53:17 +0100 Subject: [PATCH 35/43] Fetch the main branch for test repo --- .github/workflows/e2e_tests.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 56e8d4e..aee2fb0 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -106,8 +106,9 @@ jobs: ref: e2e-test-branch path: rml-e2e-test fetch-depth: 0 - - + - name: Fetch main branch + working-directory: "/home/runner/work/rml/rml/rml-e2e-test" + run: git fetch origin main - name: artifact tree working-directory: "/home/runner/work/rml/rml/" run: tree -L 5 . From 650d3cc3556b503b489c9ac4ba5cc69c9b5a0810 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 23:02:36 +0100 Subject: [PATCH 36/43] Specify the remote main branch --- tests/e2e/test_e2e.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/test_e2e.py b/tests/e2e/test_e2e.py index f3bace4..e0e3c1c 100644 --- a/tests/e2e/test_e2e.py +++ b/tests/e2e/test_e2e.py @@ -22,7 +22,7 @@ def test_e2e(): "--from", bug_branch, "--to", - "main", + "origin/main", ], stdout=sys.stdout, text=True, From e7775600d319302b041d3f931977dd1b5732c2e5 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 23:08:02 +0100 Subject: [PATCH 37/43] Check rml outpu --- tests/e2e/test_e2e.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/test_e2e.py b/tests/e2e/test_e2e.py index e0e3c1c..e32c21b 100644 --- a/tests/e2e/test_e2e.py +++ b/tests/e2e/test_e2e.py @@ -29,4 +29,4 @@ def test_e2e(): cwd=test_repo, ) assert result.returncode == 0 - # TODO (Armin): verify reported output + assert "Time to roll up your sleeves!" in result.stdout From 53f1c72124e0aadb35a61e0ad50e631aac7b086f Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 23:22:37 +0100 Subject: [PATCH 38/43] Capture stdout --- tests/e2e/test_e2e.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/e2e/test_e2e.py b/tests/e2e/test_e2e.py index e32c21b..8c8ec23 100644 --- a/tests/e2e/test_e2e.py +++ b/tests/e2e/test_e2e.py @@ -1,6 +1,5 @@ import os import subprocess -import sys from pathlib import Path import pytest @@ -24,9 +23,11 @@ def test_e2e(): "--to", "origin/main", ], - stdout=sys.stdout, + stdout=subprocess.PIPE, text=True, cwd=test_repo, ) + print(result.stdout) + print(result.stderr) assert result.returncode == 0 assert "Time to roll up your sleeves!" in result.stdout From 514048340e1bcd89c7bb238915dc04b63edbb8fd Mon Sep 17 00:00:00 2001 From: ab-10 Date: Tue, 9 Sep 2025 23:23:12 +0100 Subject: [PATCH 39/43] Print stdout on test success --- .github/workflows/e2e_tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index aee2fb0..86272b5 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -119,4 +119,4 @@ jobs: env: TEST_REPO: "/home/runner/work/rml/rml/rml-e2e-test" BUG_BRANCH: "e2e-test-branch" - run: pytest -vv artifact/test_e2e.py \ No newline at end of file + run: pytest -s -vv artifact/test_e2e.py \ No newline at end of file From 0033f4b93af3d11da95e35cba42f8c6e25d21ed5 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Wed, 10 Sep 2025 01:17:23 +0100 Subject: [PATCH 40/43] Clean up action file --- .github/workflows/e2e_tests.yaml | 39 ++++++++++++-------------------- 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 86272b5..1be3245 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -1,4 +1,4 @@ -name: E2E Tests +name: E2E Tests on: pull_request: @@ -6,8 +6,8 @@ on: workflow_dispatch: jobs: - build-linux: - name: Build + build-rml-binary: + name: Build RML Binary runs-on: ubuntu-latest steps: - name: Checkout code @@ -42,31 +42,24 @@ jobs: name: test_e2e.py path: tests/e2e/test_e2e.py - - name: Add binary to PATH - run: echo "$BIN_DIR" >> $GITHUB_PATH - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.11' - - - test-linux-clean: - name: Test - needs: build-linux + e2e-test: + name: Run E2E Tests + needs: build-rml-binary runs-on: ubuntu-latest permissions: contents: read id-token: write # Required for OIDC/Workload Identity Federation + env: + WORKSPACE_ROOT: ${{ github.workspace }} steps: - - name: Download artifact only (no checkout) + - name: Download RML binary artifact uses: actions/download-artifact@v4 with: name: rml-linux-tarball path: artifact - name: Download e2e test file - uses: actions/download-artifact@v5 + uses: actions/download-artifact@v4 with: name: test_e2e.py path: artifact @@ -80,7 +73,6 @@ jobs: echo "RECURSE_API_KEY=${{ secrets.E2E_TEST_RML_KEY }}" > dist/extracted/rml/.env.rml echo "BIN_DIR=$PWD/dist/extracted/rml" >> $GITHUB_ENV - - name: Add binary to PATH run: echo "$BIN_DIR" >> $GITHUB_PATH @@ -106,17 +98,14 @@ jobs: ref: e2e-test-branch path: rml-e2e-test fetch-depth: 0 + - name: Fetch main branch - working-directory: "/home/runner/work/rml/rml/rml-e2e-test" + working-directory: ${{ env.WORKSPACE_ROOT }}/rml-e2e-test run: git fetch origin main - - name: artifact tree - working-directory: "/home/runner/work/rml/rml/" - run: tree -L 5 . - - name: Run e2e test file - working-directory: "/home/runner/work/rml/rml/" + working-directory: ${{ env.WORKSPACE_ROOT }} env: - TEST_REPO: "/home/runner/work/rml/rml/rml-e2e-test" + TEST_REPO: ${{ env.WORKSPACE_ROOT }}/rml-e2e-test BUG_BRANCH: "e2e-test-branch" run: pytest -s -vv artifact/test_e2e.py \ No newline at end of file From 48fbe976637257db1cb6158f940a5c2b351a5ef1 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Wed, 10 Sep 2025 11:48:13 +0100 Subject: [PATCH 41/43] Run E2E test in e2e env --- .github/workflows/e2e_tests.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index 1be3245..c3394fd 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -46,6 +46,7 @@ jobs: name: Run E2E Tests needs: build-rml-binary runs-on: ubuntu-latest + environment: E2E permissions: contents: read id-token: write # Required for OIDC/Workload Identity Federation From f8a4be96648e72ca1ca93d67fbdb7ae504fd2840 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Wed, 10 Sep 2025 12:00:39 +0100 Subject: [PATCH 42/43] Only require approval for external contribs --- .github/workflows/e2e_tests.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index c3394fd..c884e54 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -46,7 +46,9 @@ jobs: name: Run E2E Tests needs: build-rml-binary runs-on: ubuntu-latest - environment: E2E + # Ensures only external contributors require approval to run the E2E tests + environment: ${{ github.event.pull_request.head.repo.full_name != github.repository && 'E2E' || '' }} + permissions: contents: read id-token: write # Required for OIDC/Workload Identity Federation From f9514de91e536bcfea62fedb9b5cbb3d22b964a3 Mon Sep 17 00:00:00 2001 From: ab-10 Date: Wed, 10 Sep 2025 13:05:29 +0100 Subject: [PATCH 43/43] Update ruff version --- .github/workflows/e2e_tests.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e_tests.yaml b/.github/workflows/e2e_tests.yaml index c884e54..edb6890 100644 --- a/.github/workflows/e2e_tests.yaml +++ b/.github/workflows/e2e_tests.yaml @@ -16,7 +16,7 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@v5 with: - version: "0.7.2" + version: "0.7.20" # Ensure this matches the version in the Makefile enable-cache: true - name: Set up Python @@ -111,4 +111,4 @@ jobs: env: TEST_REPO: ${{ env.WORKSPACE_ROOT }}/rml-e2e-test BUG_BRANCH: "e2e-test-branch" - run: pytest -s -vv artifact/test_e2e.py \ No newline at end of file + run: pytest -s -vv artifact/test_e2e.py