From 6ce1066343df09bcec446ade11a99f8755d94172 Mon Sep 17 00:00:00 2001
From: Bradley Bown <bradbown@googlemail.com>
Date: Mon, 7 Oct 2024 13:35:18 +0100
Subject: [PATCH] Switch workflows to self hosted runners (#131)

* Switch runner of filter job to a self-hosted runner
---
 .github/workflows/all-tools.yml               |  8 ++---
 .github/workflows/bridge-ui-e2e-tests.yml     |  2 +-
 .github/workflows/bridge-ui-publish.yml       |  4 +--
 .github/workflows/cache-docker-images.yml     |  4 +--
 .github/workflows/codeql.yml                  |  2 +-
 .../coordinator-build-and-publish.yml         |  2 +-
 .github/workflows/coordinator-testing.yml     | 36 +------------------
 .../finalized-tag-updater-github-release.yml  |  2 +-
 .github/workflows/load-test.yml               |  2 +-
 .github/workflows/main.yml                    |  4 +--
 .github/workflows/maven-release.yml           |  2 +-
 .../workflows/postman-build-and-publish.yml   |  2 +-
 .github/workflows/postman-testing.yml         |  2 +-
 .../workflows/prover-build-and-publish.yml    |  2 +-
 ...ver-native-lib-blob-compressor-release.yml |  4 +--
 .github/workflows/prover-testing.yml          | 11 +++---
 .../reuse-check-images-tags-and-push.yml      |  4 +--
 .github/workflows/reuse-run-e2e-tests.yml     |  2 +-
 .../reuse-store-image-name-and-tags.yml       |  2 +-
 .../reuse-tag-without-untested-suffix.yml     |  2 +-
 .github/workflows/run-smc-tests.yml           |  4 +--
 .github/workflows/security-report-to-csv.yml  |  2 +-
 .github/workflows/stale.yml                   |  2 +-
 .../traces-api-facade-build-and-publish.yml   |  2 +-
 .../workflows/traces-api-facade-testing.yml   |  2 +-
 .github/workflows/valid-audit-pr-has-tags.yml |  2 +-
 26 files changed, 39 insertions(+), 74 deletions(-)

diff --git a/.github/workflows/all-tools.yml b/.github/workflows/all-tools.yml
index a55b0907c..6b9ea3742 100644
--- a/.github/workflows/all-tools.yml
+++ b/.github/workflows/all-tools.yml
@@ -16,7 +16,7 @@ on:
 
 jobs:
   changes:
-    runs-on: besu-arm64
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     name: Filter commit changes
     outputs:
       all-tools: ${{ steps.filter.outputs['all-tools'] }}
@@ -39,7 +39,7 @@ jobs:
     uses: ./.github/workflows/reuse-store-image-name-and-tags.yml
 
   check_image_tags_exist:
-    runs-on: besu-arm64
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     name: Check image tags exist
     needs: [ changes, store_image_name_and_tags ]
     if: ${{ needs.changes.outputs['all-tools'] == 'false' }}
@@ -56,7 +56,7 @@ jobs:
           docker_password: ${{ secrets.DOCKERHUB_TOKEN }}
 
   all-tools-tag-only:
-    runs-on: besu-arm64
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     name: All tools tag only
     needs: [ changes, store_image_name_and_tags, check_image_tags_exist ]
     if: ${{ github.event_name != 'pull_request' && needs.changes.outputs['all-tools'] == 'false' }}
@@ -83,7 +83,7 @@ jobs:
   build-and-publish:
     needs: [ changes, store_image_name_and_tags, all-tools-tag-only ]
     if: ${{ always() && (needs.changes.outputs['all-tools'] == 'true' || needs.all-tools-tag-only.result != 'success' || needs.all-tools-tag-only.outputs.image_tagged != 'true') }}
-    runs-on: ubuntu-22.04
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     env:
       COMMIT_TAG: ${{ needs.store_image_name_and_tags.outputs.commit_tag }}
       DEVELOP_TAG: ${{ needs.store_image_name_and_tags.outputs.develop_tag }}
diff --git a/.github/workflows/bridge-ui-e2e-tests.yml b/.github/workflows/bridge-ui-e2e-tests.yml
index 06206d32c..fc6f1139d 100644
--- a/.github/workflows/bridge-ui-e2e-tests.yml
+++ b/.github/workflows/bridge-ui-e2e-tests.yml
@@ -14,7 +14,7 @@ on:
 
 jobs:
   run-e2e-tests:
-    runs-on: besu-arm64
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     steps:
       - name: Checkout
         uses: actions/checkout@v4
diff --git a/.github/workflows/bridge-ui-publish.yml b/.github/workflows/bridge-ui-publish.yml
index 14816cc55..1f8bc68d0 100644
--- a/.github/workflows/bridge-ui-publish.yml
+++ b/.github/workflows/bridge-ui-publish.yml
@@ -14,7 +14,7 @@ on:
 
 jobs:
   publish:
-    runs-on: ubuntu-22.04
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     if: github.event_name != 'pull_request' || (github.event_name == 'pull_request' && github.event.pull_request.draft == false)
     steps:
       - name: Checkout
@@ -35,7 +35,7 @@ jobs:
         with:
           username: ${{ secrets.DOCKERHUB_USERNAME }}
           password: ${{ secrets.DOCKERHUB_TOKEN }}
-      
+
       - name: Set up Docker Buildx
         uses: docker/setup-buildx-action@v2
 
diff --git a/.github/workflows/cache-docker-images.yml b/.github/workflows/cache-docker-images.yml
index 4554b8fc5..8437cb40a 100644
--- a/.github/workflows/cache-docker-images.yml
+++ b/.github/workflows/cache-docker-images.yml
@@ -9,7 +9,7 @@ on:
 
 jobs:
   changes:
-    runs-on: besu-arm64
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     name: Filter commit changes
     outputs:
       cache-images: ${{ steps.filter.outputs.cache-images }}
@@ -31,7 +31,7 @@ jobs:
   pull-and-cache-images:
     needs: [ changes ]
     if: ${{ always() && needs.changes.outputs.cache-images == 'true' }}
-    runs-on: ubuntu-22.04
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     steps:
       - name: Checkout
         uses: actions/checkout@v3
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 31e9e799f..40b7887f7 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -18,7 +18,7 @@ on:
 jobs:
   analyze:
     name: Analyze
-    runs-on: ubuntu-latest
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     permissions:
       actions: read
       contents: read
diff --git a/.github/workflows/coordinator-build-and-publish.yml b/.github/workflows/coordinator-build-and-publish.yml
index 08c0b72bd..12f4f2173 100644
--- a/.github/workflows/coordinator-build-and-publish.yml
+++ b/.github/workflows/coordinator-build-and-publish.yml
@@ -33,7 +33,7 @@ concurrency:
 
 jobs:
   build-and-publish:
-    runs-on: ubuntu-22.04
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     name: Coordinator build
     environment: ${{ github.ref != 'refs/heads/main' && 'docker-build-and-e2e' || '' }}
     env:
diff --git a/.github/workflows/coordinator-testing.yml b/.github/workflows/coordinator-testing.yml
index da8d557dd..2915a909a 100644
--- a/.github/workflows/coordinator-testing.yml
+++ b/.github/workflows/coordinator-testing.yml
@@ -24,7 +24,7 @@ jobs:
     env:
       COMMIT_TAG: ${{ inputs.commit_tag }}
       GITHUB_TOKEN: ${{ secrets._GITHUB_TOKEN_RELEASE_ACCESS }}
-    runs-on: ubuntu-22.04
+    runs-on: [self-hosted, ubuntu-22.04, X64, medium]
     name: Coordinator tests
     steps:
       - name: Checkout
@@ -64,40 +64,6 @@ jobs:
           if-no-files-found: error
           path: |
             ${{ github.workspace }}/build/reports/jacoco/jacocoRootReport/jacocoRootReport.xml
-      - name: Setup .NET Core # Required to execute ReportGenerator
-        uses: actions/setup-dotnet@v3
-        with:
-          dotnet-version: 8.x
-          dotnet-quality: 'ga'
-      - name: ReportGenerator
-        uses: danielpalme/ReportGenerator-GitHub-Action@5.2.4
-        with:
-          reports: '${{ github.workspace }}/build/reports/jacoco/jacocoRootReport/*.xml'
-          targetdir: '${{ github.workspace }}/build/reports/jacoco/jacocoRootReport/coverageReports'
-          reporttypes: MarkdownSummary
-          historydir: '${{ github.workspace }}/build/reports/jacoco/jacocoRootReport/coverageReports'
-          title: 'Kotlin Code Coverage'
-      - name: DeltaReportGenerator
-        uses: danielpalme/ReportGenerator-GitHub-Action@5.2.4
-        with:
-          reports: '${{ github.workspace }}/build/reports/jacoco/jacocoRootReport/*.xml'
-          targetdir: '${{ github.workspace }}/build/reports/jacoco/jacocoRootReport/coverageDeltaReports'
-          reporttypes: MarkdownDeltaSummary
-          historydir: '${{ github.workspace }}/build/reports/jacoco/jacocoRootReport/coverageReports'
-          title: 'Kotlin Code Coverage'
-      - name: Upload coverage report artifact
-        id: upload
-        uses: actions/upload-artifact@v4
-        with:
-          name: CoverageReport
-          path: |
-            ${{ github.workspace }}/build/reports/jacoco/jacocoRootReport/coverageReports
-      - name: Write code coverage delta to PR
-        uses: mshick/add-pr-comment@v2
-        with:
-          repo-token: ${{ secrets.GITHUB_TOKEN }}
-          message-path: |
-            ${{ github.workspace }}/build/reports/jacoco/jacocoRootReport/coverageDeltaReports/DeltaSummary.md
       - name: Upload coverage to Codecov
         uses: codecov/codecov-action@v4
         with:
diff --git a/.github/workflows/finalized-tag-updater-github-release.yml b/.github/workflows/finalized-tag-updater-github-release.yml
index 64d35d11b..1cdc41354 100644
--- a/.github/workflows/finalized-tag-updater-github-release.yml
+++ b/.github/workflows/finalized-tag-updater-github-release.yml
@@ -15,7 +15,7 @@ on:
 
 jobs:
   release:
-    runs-on: ubuntu-24.04
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     steps:
       - name: Checkout code
         uses: actions/checkout@v4
diff --git a/.github/workflows/load-test.yml b/.github/workflows/load-test.yml
index 79a5163ca..009473da8 100644
--- a/.github/workflows/load-test.yml
+++ b/.github/workflows/load-test.yml
@@ -27,7 +27,7 @@ concurrency:
 
 jobs:
   run-load-test:
-    runs-on: besu-arm64
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     name: Run Load Test
     steps:
       - name: Checkout
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 7c2983125..24adbf317 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -8,7 +8,7 @@ jobs:
     uses: ./.github/workflows/reuse-store-image-name-and-tags.yml
 
   filter-commit-changes:
-    runs-on: besu-arm64
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     name: Filter commit changes
     outputs:
       coordinator: ${{ steps.filter.outputs.coordinator }}
@@ -191,7 +191,7 @@ jobs:
   cleanup-deployments:
     needs: [ run-e2e-tests, run-e2e-tests-geth-tracing ]
     if: ${{ always() }}
-    runs-on: besu-arm64
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     steps:
       - uses: strumwolf/delete-deployment-environment@v2
         with:
diff --git a/.github/workflows/maven-release.yml b/.github/workflows/maven-release.yml
index 0a533078e..f42a6ae09 100644
--- a/.github/workflows/maven-release.yml
+++ b/.github/workflows/maven-release.yml
@@ -18,7 +18,7 @@ on:
 
 jobs:
   release:
-    runs-on: ubuntu-24.04
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     steps:
       - name: Checkout code
         uses: actions/checkout@v4
diff --git a/.github/workflows/postman-build-and-publish.yml b/.github/workflows/postman-build-and-publish.yml
index a0085848e..18a9d173d 100644
--- a/.github/workflows/postman-build-and-publish.yml
+++ b/.github/workflows/postman-build-and-publish.yml
@@ -33,7 +33,7 @@ concurrency:
 
 jobs:
   build-and-publish:
-    runs-on: ubuntu-22.04
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     name: Postman build
     environment: ${{ github.ref != 'refs/heads/main' && 'docker-build-and-e2e' || '' }}
     env:
diff --git a/.github/workflows/postman-testing.yml b/.github/workflows/postman-testing.yml
index 12d2a9817..520f86102 100644
--- a/.github/workflows/postman-testing.yml
+++ b/.github/workflows/postman-testing.yml
@@ -14,7 +14,7 @@ concurrency:
 
 jobs:
   run-tests:
-    runs-on: ubuntu-22.04
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     name: Postman & SDK tests
     steps:
       - name: Checkout
diff --git a/.github/workflows/prover-build-and-publish.yml b/.github/workflows/prover-build-and-publish.yml
index 38337ebbc..e8ada5ec0 100644
--- a/.github/workflows/prover-build-and-publish.yml
+++ b/.github/workflows/prover-build-and-publish.yml
@@ -36,7 +36,7 @@ env:
 
 jobs:
   build-and-publish:
-    runs-on: ubuntu-latest
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     name: Prover build
     environment: ${{ github.ref != 'refs/heads/main' && 'docker-build-and-e2e' || '' }}
     env:
diff --git a/.github/workflows/prover-native-lib-blob-compressor-release.yml b/.github/workflows/prover-native-lib-blob-compressor-release.yml
index 5c1dd092b..8a24dc592 100644
--- a/.github/workflows/prover-native-lib-blob-compressor-release.yml
+++ b/.github/workflows/prover-native-lib-blob-compressor-release.yml
@@ -21,7 +21,7 @@ on:
 jobs:
 
   build-linux:
-    runs-on: ubuntu-24.04
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     steps:
       - name: Checkout code
         uses: actions/checkout@v4
@@ -117,7 +117,7 @@ jobs:
   release_artefacts:
     name: Release artefacts
     needs: [ build-linux, build-linux-arm64, build-mac-os]
-    runs-on: besu-arm64
+    runs-on: [self-hosted,ubuntu-22.04ARM64, small]
     steps:
       - name: Load cached binaries
         uses: actions/download-artifact@v4
diff --git a/.github/workflows/prover-testing.yml b/.github/workflows/prover-testing.yml
index a6b7c4dac..5d1ac73ee 100644
--- a/.github/workflows/prover-testing.yml
+++ b/.github/workflows/prover-testing.yml
@@ -17,7 +17,7 @@ concurrency:
 
 jobs:
   staticcheck:
-    runs-on: ubuntu-latest
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     name: Prover static check
     steps:
     - name: install Go
@@ -58,8 +58,7 @@ jobs:
     strategy:
       matrix:
         go-version: [1.23.x]
-        os: [ubuntu-latest]
-    runs-on: ${{ matrix.os }}
+    runs-on: [self-hosted, ubuntu-22.04, X64, medium]
     name: Prover testing
     needs:
       - staticcheck
@@ -90,7 +89,7 @@ jobs:
         go test -p=1 -tags=nocorset,fuzzlight -timeout=30m ./...
     - name: Test (32 bits & race)
       working-directory: prover
-      if: (matrix.os == 'ubuntu-latest') && (matrix.go-version == '1.20.x')
+      if: matrix.go-version == '1.20.x'
       run: |
           go test -p=1 -tags=nocorset,fuzzlight -timeout=30m -short -race  ./...
 
@@ -100,7 +99,7 @@ jobs:
     needs:
       - staticcheck
       - test
-    runs-on: besu-arm64
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     steps:
       - name: Notify slack -- workflow failed
         id: slack
@@ -123,7 +122,7 @@ jobs:
     needs:
       - staticcheck
       - test
-    runs-on: besu-arm64
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     steps:
       - name: Notify slack -- workflow succeeded
         id: slack
diff --git a/.github/workflows/reuse-check-images-tags-and-push.yml b/.github/workflows/reuse-check-images-tags-and-push.yml
index 2f1007165..2b80f4c1a 100644
--- a/.github/workflows/reuse-check-images-tags-and-push.yml
+++ b/.github/workflows/reuse-check-images-tags-and-push.yml
@@ -50,7 +50,7 @@ concurrency:
 
 jobs:
   check_image_tags_exist:
-    runs-on: besu-arm64
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     name: Check image tags exist
     outputs:
       last_commit_tag_exists_coordinator: ${{ steps.check_image_tags_exist_coordinator.outputs.last_commit_tag_exists }}
@@ -110,7 +110,7 @@ jobs:
           docker_password: ${{ secrets.DOCKERHUB_TOKEN }}
 
   image_tag_push:
-    runs-on: besu-arm64
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     name: Tag and push images
     needs: [ check_image_tags_exist ]
     outputs:
diff --git a/.github/workflows/reuse-run-e2e-tests.yml b/.github/workflows/reuse-run-e2e-tests.yml
index 96cbdada4..42c91237e 100644
--- a/.github/workflows/reuse-run-e2e-tests.yml
+++ b/.github/workflows/reuse-run-e2e-tests.yml
@@ -75,7 +75,7 @@ jobs:
       GITHUB_TOKEN: ${{ secrets._GITHUB_TOKEN_RELEASE_ACCESS }}
     outputs:
       tests_outcome: ${{ steps.run_e2e_tests.outcome }}
-    runs-on: ubuntu-22.04
+    runs-on: [self-hosted, ubuntu-22.04, X64, medium]
     environment: ${{ github.ref != 'refs/heads/main' && 'docker-build-and-e2e' || '' }}
     steps:
       - name: Setup upterm session
diff --git a/.github/workflows/reuse-store-image-name-and-tags.yml b/.github/workflows/reuse-store-image-name-and-tags.yml
index a4fda8126..0f415a41f 100644
--- a/.github/workflows/reuse-store-image-name-and-tags.yml
+++ b/.github/workflows/reuse-store-image-name-and-tags.yml
@@ -19,7 +19,7 @@ concurrency:
 
 jobs:
   store_image_name_and_tags:
-    runs-on: besu-arm64
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     name: Compute version tags
     env:
       # REF_NAME: ${{ github.ref_name }}
diff --git a/.github/workflows/reuse-tag-without-untested-suffix.yml b/.github/workflows/reuse-tag-without-untested-suffix.yml
index 5dd95a7d2..32acf05d1 100644
--- a/.github/workflows/reuse-tag-without-untested-suffix.yml
+++ b/.github/workflows/reuse-tag-without-untested-suffix.yml
@@ -22,7 +22,7 @@ on:
 
 jobs:
   tag-without-untested-suffix:
-    runs-on: besu-arm64
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     name: tag without untested suffix
     strategy:
       matrix:
diff --git a/.github/workflows/run-smc-tests.yml b/.github/workflows/run-smc-tests.yml
index dbec64b10..c53bd57b8 100644
--- a/.github/workflows/run-smc-tests.yml
+++ b/.github/workflows/run-smc-tests.yml
@@ -12,7 +12,7 @@ env:
 
 jobs:
   run-contract-tests:
-    runs-on: besu-arm64
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     name: Run smart contracts tests
     steps:
       - uses: actions/checkout@v4
@@ -61,7 +61,7 @@ jobs:
           token: ${{ secrets.CODECOV_TOKEN }}
 
   solidity-format-check:
-    runs-on: besu-arm64
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     name: Solidity format check
     steps:
       - uses: actions/checkout@v4
diff --git a/.github/workflows/security-report-to-csv.yml b/.github/workflows/security-report-to-csv.yml
index 470f2f551..4e76df856 100644
--- a/.github/workflows/security-report-to-csv.yml
+++ b/.github/workflows/security-report-to-csv.yml
@@ -2,7 +2,7 @@ name: Export Security Report to CSV
 on: workflow_dispatch
 jobs:
   data_gathering:
-    runs-on: ubuntu-20.04
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     steps:
       - name: CSV export
         uses: advanced-security/ghas-to-csv@v2
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
index e10360e36..e12dfc43b 100644
--- a/.github/workflows/stale.yml
+++ b/.github/workflows/stale.yml
@@ -11,7 +11,7 @@ permissions:
 
 jobs:
   stale:
-    runs-on: besu-arm64
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     steps:
       - uses: actions/stale@v8
         with:
diff --git a/.github/workflows/traces-api-facade-build-and-publish.yml b/.github/workflows/traces-api-facade-build-and-publish.yml
index 179474f46..68df2ce62 100644
--- a/.github/workflows/traces-api-facade-build-and-publish.yml
+++ b/.github/workflows/traces-api-facade-build-and-publish.yml
@@ -33,7 +33,7 @@ concurrency:
 
 jobs:
   build-and-publish:
-    runs-on: ubuntu-latest
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     name: Traces api facade build
     environment: ${{ github.ref != 'refs/heads/main' && 'docker-build-and-e2e' || '' }}
     env:
diff --git a/.github/workflows/traces-api-facade-testing.yml b/.github/workflows/traces-api-facade-testing.yml
index 2a64bb518..d49379277 100644
--- a/.github/workflows/traces-api-facade-testing.yml
+++ b/.github/workflows/traces-api-facade-testing.yml
@@ -21,7 +21,7 @@ concurrency:
 
 jobs:
   run-tests:
-    runs-on: besu-arm64
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
     name: Traces api facade tests
     steps:
       - name: Checkout
diff --git a/.github/workflows/valid-audit-pr-has-tags.yml b/.github/workflows/valid-audit-pr-has-tags.yml
index 407712d19..a5a25471f 100644
--- a/.github/workflows/valid-audit-pr-has-tags.yml
+++ b/.github/workflows/valid-audit-pr-has-tags.yml
@@ -9,7 +9,7 @@ on:
 
 jobs:
   check:
-    runs-on: besu-arm64
+    runs-on: [self-hosted, ubuntu-22.04, X64, small]
 
     steps:
     - name: Checkout code