From 9e2eeddc1e321d8ef9c402e96b7c65eb91b24142 Mon Sep 17 00:00:00 2001 From: Roman Date: Thu, 17 Jul 2025 17:50:41 -0700 Subject: [PATCH 1/9] add labels checker --- .github/workflows/e2e-subtensor-tests.yaml | 42 ++++++++++++++++++---- 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/.github/workflows/e2e-subtensor-tests.yaml b/.github/workflows/e2e-subtensor-tests.yaml index b8e672ef8e..45aab13e6b 100644 --- a/.github/workflows/e2e-subtensor-tests.yaml +++ b/.github/workflows/e2e-subtensor-tests.yaml @@ -52,16 +52,46 @@ jobs: outputs: image-name: ${{ steps.set-output.outputs.image-name }} steps: - - name: Set Docker image tag based on branch + - name: Set Docker image tag based on label or branch id: set-output run: | - ref="${{ github.ref_name }}" - if [[ "$ref" == "master" ]]; then - image="ghcr.io/opentensor/subtensor-localnet:main" + echo "Event: $GITHUB_EVENT_NAME" + echo "Branch: $GITHUB_REF_NAME" + + echo "Reading labels ..." + if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then + labels=$(jq -r '.pull_request.labels[].name' "$GITHUB_EVENT_PATH") else - image="ghcr.io/opentensor/subtensor-localnet:devnet-ready" + labels="" fi - echo "Using image: $image" + + image="" + + for label in $labels; do + echo "Found label: $label" + case "$label" in + "subtensor-localnet:main") + image="ghcr.io/opentensor/subtensor-localnet:main" + ;; + "subtensor-localnet:testnet") + image="ghcr.io/opentensor/subtensor-localnet:testnet" + ;; + "subtensor-localnet:devnet") + image="ghcr.io/opentensor/subtensor-localnet:devnet" + ;; + esac + done + + if [[ -z "$image" ]]; then + # fallback to default based on branch + if [[ "${GITHUB_REF_NAME}" == "master" ]]; then + image="ghcr.io/opentensor/subtensor-localnet:main" + else + image="ghcr.io/opentensor/subtensor-localnet:devnet-ready" + fi + fi + + echo "✅ Final selected image: $image" echo "image-name=$image" >> "$GITHUB_OUTPUT" - name: Log in to GitHub Container Registry From c688e475f576cf2add1a498f03217a2fa0b043d3 Mon Sep 17 00:00:00 2001 From: Roman Date: Thu, 17 Jul 2025 17:53:29 -0700 Subject: [PATCH 2/9] add trigger --- .github/workflows/e2e-subtensor-tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e-subtensor-tests.yaml b/.github/workflows/e2e-subtensor-tests.yaml index 45aab13e6b..75911e73f9 100644 --- a/.github/workflows/e2e-subtensor-tests.yaml +++ b/.github/workflows/e2e-subtensor-tests.yaml @@ -11,7 +11,7 @@ on: pull_request: branches: - '**' - types: [ opened, synchronize, reopened, ready_for_review ] + types: [ opened, synchronize, reopened, ready_for_review, labeled, unlabeled ] workflow_dispatch: inputs: From fdf04de3b6a5e01fabd36ed3816f53f73d4e2d91 Mon Sep 17 00:00:00 2001 From: Roman Date: Thu, 17 Jul 2025 18:04:52 -0700 Subject: [PATCH 3/9] unique group name --- .github/workflows/e2e-subtensor-tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e-subtensor-tests.yaml b/.github/workflows/e2e-subtensor-tests.yaml index 75911e73f9..3a96b161ce 100644 --- a/.github/workflows/e2e-subtensor-tests.yaml +++ b/.github/workflows/e2e-subtensor-tests.yaml @@ -1,7 +1,7 @@ name: E2E Subtensor Tests concurrency: - group: e2e-subtensor-${{ github.ref }} + : e2e-subtensor-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true on: From b6f06d8b0657e625ef6c6e0b375d2706702811e3 Mon Sep 17 00:00:00 2001 From: Roman Date: Thu, 17 Jul 2025 18:09:41 -0700 Subject: [PATCH 4/9] improvements --- .github/workflows/e2e-subtensor-tests.yaml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/e2e-subtensor-tests.yaml b/.github/workflows/e2e-subtensor-tests.yaml index 3a96b161ce..2fb48256fd 100644 --- a/.github/workflows/e2e-subtensor-tests.yaml +++ b/.github/workflows/e2e-subtensor-tests.yaml @@ -1,7 +1,7 @@ name: E2E Subtensor Tests concurrency: - : e2e-subtensor-${{ github.event.pull_request.number || github.ref }} + group: e2e-subtensor-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true on: @@ -50,10 +50,10 @@ jobs: pull-docker-image: runs-on: ubuntu-latest outputs: - image-name: ${{ steps.set-output.outputs.image-name }} + image-name: ${{ steps.set-image.outputs.image }} steps: - name: Set Docker image tag based on label or branch - id: set-output + id: set-image run: | echo "Event: $GITHUB_EVENT_NAME" echo "Branch: $GITHUB_REF_NAME" @@ -72,12 +72,15 @@ jobs: case "$label" in "subtensor-localnet:main") image="ghcr.io/opentensor/subtensor-localnet:main" + break ;; "subtensor-localnet:testnet") image="ghcr.io/opentensor/subtensor-localnet:testnet" + break ;; "subtensor-localnet:devnet") image="ghcr.io/opentensor/subtensor-localnet:devnet" + break ;; esac done @@ -98,10 +101,10 @@ jobs: run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin - name: Pull Docker Image - run: docker pull ${{ steps.set-output.outputs.image-name }} + run: docker pull ${{ steps.set-image.outputs.image }} - name: Save Docker Image to Cache - run: docker save -o subtensor-localnet.tar ${{ steps.set-output.outputs.image-name }} + run: docker save -o subtensor-localnet.tar ${{ steps.set-image.outputs.image }} - name: Upload Docker Image as Artifact uses: actions/upload-artifact@v4 @@ -154,8 +157,9 @@ jobs: run: | set +e for i in 1 2 3; do - echo "🔁 Attempt $i: Running tests" + echo "::group::🔁 Test attempt $i" uv run pytest ${{ matrix.test-file }} -s + echo "::endgroup::" status=$? if [ $status -eq 0 ]; then echo "✅ Tests passed on attempt $i" From 2de2a6c04134cc855a43ec4567490bc58ed94db7 Mon Sep 17 00:00:00 2001 From: Roman Date: Thu, 17 Jul 2025 18:11:09 -0700 Subject: [PATCH 5/9] oops --- .github/workflows/e2e-subtensor-tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e-subtensor-tests.yaml b/.github/workflows/e2e-subtensor-tests.yaml index 2fb48256fd..853e5c21b1 100644 --- a/.github/workflows/e2e-subtensor-tests.yaml +++ b/.github/workflows/e2e-subtensor-tests.yaml @@ -95,7 +95,7 @@ jobs: fi echo "✅ Final selected image: $image" - echo "image-name=$image" >> "$GITHUB_OUTPUT" + echo "image=$image" >> "$GITHUB_OUTPUT" - name: Log in to GitHub Container Registry run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin From d746cf291e20fc3882c0bf3007cab0cde86da1cc Mon Sep 17 00:00:00 2001 From: Roman Date: Thu, 17 Jul 2025 18:20:15 -0700 Subject: [PATCH 6/9] trigger CI From 98ab70b68930b1ed37214c9e87be41407424a302 Mon Sep 17 00:00:00 2001 From: Roman Date: Thu, 17 Jul 2025 18:23:36 -0700 Subject: [PATCH 7/9] if --- .github/workflows/e2e-subtensor-tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/e2e-subtensor-tests.yaml b/.github/workflows/e2e-subtensor-tests.yaml index 853e5c21b1..67029e41c9 100644 --- a/.github/workflows/e2e-subtensor-tests.yaml +++ b/.github/workflows/e2e-subtensor-tests.yaml @@ -29,7 +29,7 @@ jobs: # Looking for e2e tests find-tests: runs-on: ubuntu-latest - if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }} + if: ${{ github.event.pull_request.draft == false }} outputs: test-files: ${{ steps.get-tests.outputs.test-files }} steps: From fb7e07834113bc508e528100c4042c254a322a84 Mon Sep 17 00:00:00 2001 From: Roman Date: Thu, 17 Jul 2025 19:17:09 -0700 Subject: [PATCH 8/9] fix double run --- .github/workflows/e2e-subtensor-tests.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/e2e-subtensor-tests.yaml b/.github/workflows/e2e-subtensor-tests.yaml index 67029e41c9..4cd20ac6e4 100644 --- a/.github/workflows/e2e-subtensor-tests.yaml +++ b/.github/workflows/e2e-subtensor-tests.yaml @@ -5,9 +5,6 @@ concurrency: cancel-in-progress: true on: - push: - branches: - - '**' pull_request: branches: - '**' From f09d69060386dcafec7e59006389e18c03963b46 Mon Sep 17 00:00:00 2001 From: Roman Date: Thu, 17 Jul 2025 19:47:11 -0700 Subject: [PATCH 9/9] kill forever happy test --- .github/workflows/e2e-subtensor-tests.yaml | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/.github/workflows/e2e-subtensor-tests.yaml b/.github/workflows/e2e-subtensor-tests.yaml index 4cd20ac6e4..265b358a84 100644 --- a/.github/workflows/e2e-subtensor-tests.yaml +++ b/.github/workflows/e2e-subtensor-tests.yaml @@ -152,23 +152,21 @@ jobs: env: LOCALNET_IMAGE_NAME: ${{ needs.pull-docker-image.outputs.image-name }} run: | - set +e for i in 1 2 3; do echo "::group::🔁 Test attempt $i" - uv run pytest ${{ matrix.test-file }} -s - echo "::endgroup::" - status=$? - if [ $status -eq 0 ]; then + if uv run pytest ${{ matrix.test-file }} -s; then echo "✅ Tests passed on attempt $i" - break + echo "::endgroup::" + exit 0 else echo "❌ Tests failed on attempt $i" - if [ $i -eq 3 ]; then - echo "Tests failed after 3 attempts" - exit 1 + echo "::endgroup::" + if [ "$i" -lt 3 ]; then + echo "Retrying..." + sleep 5 fi - echo "Retrying..." - sleep 5 fi done + echo "Tests failed after 3 attempts" + exit 1