diff --git a/.github/workflows/compile-queries.yml b/.github/workflows/compile-queries.yml index c44aa56a7530..6ae809c6c1cb 100644 --- a/.github/workflows/compile-queries.yml +++ b/.github/workflows/compile-queries.yml @@ -9,8 +9,26 @@ on: pull_request: jobs: + choose-runner: + runs-on: ubuntu-latest + outputs: + mac-12: ${{ steps.results.outputs.MAC_12 }} + ubuntu-latest: ${{ steps.results.outputs.UBUNTU_LATEST }} + windows-latest: ${{ steps.results.outputs.WINDOWS_LATEST }} + steps: + - id: results + run: | + echo "UBUNTU_LATEST=$UBUNTU_LATEST" >> $GITHUB_OUTPUT + echo "MAC_12=$MAC_12" >> $GITHUB_OUTPUT + echo "WINDOWS_LATEST=$WINDOWS_LATEST" >> $GITHUB_OUTPUT + env: + UBUNTU_LATEST: ${{ (github.repository_owner == 'github' || vars.use_large_linux_runners_for_speed) && 'ubuntu-latest-xl' || 'ubuntu-latest' }} + MAC_12: ${{ (github.repository_owner == 'github' || vars.use_large_mac_runners_for_speed) && 'macos-12-xl' || 'macos-12' }} + WINDOWS_LATEST: ${{ (github.repository_owner == 'github' || vars.use_large_win_runners_for_speed) && 'windows-latest-xl' || 'windows-latest' }} + compile-queries: - runs-on: ubuntu-latest-xl + needs: choose-runner + runs-on: ${{ needs.choose-runner.outputs.ubuntu-latest }} steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/csharp-qltest.yml b/.github/workflows/csharp-qltest.yml index f9e1db3f4c7f..be0bf20a58cb 100644 --- a/.github/workflows/csharp-qltest.yml +++ b/.github/workflows/csharp-qltest.yml @@ -45,8 +45,30 @@ jobs: --dbscheme=ql/lib/semmlecode.csharp.dbscheme --target-dbscheme=downgrades/initial/semmlecode.csharp.dbscheme | xargs codeql execute upgrades testdb diff -q testdb/semmlecode.csharp.dbscheme downgrades/initial/semmlecode.csharp.dbscheme + + choose-runner: + defaults: + run: + working-directory: /tmp + runs-on: ubuntu-latest + outputs: + mac-12: ${{ steps.results.outputs.MAC_12 }} + ubuntu-latest: ${{ steps.results.outputs.UBUNTU_LATEST }} + windows-latest: ${{ steps.results.outputs.WINDOWS_LATEST }} + steps: + - id: results + run: | + echo "UBUNTU_LATEST=$UBUNTU_LATEST" >> $GITHUB_OUTPUT + echo "MAC_12=$MAC_12" >> $GITHUB_OUTPUT + echo "WINDOWS_LATEST=$WINDOWS_LATEST" >> $GITHUB_OUTPUT + env: + UBUNTU_LATEST: ${{ (github.repository_owner == 'github' || vars.use_large_linux_runners_for_speed) && 'ubuntu-latest-xl' || 'ubuntu-latest' }} + MAC_12: ${{ (github.repository_owner == 'github' || vars.use_large_mac_runners_for_speed) && 'macos-12-xl' || 'macos-12' }} + WINDOWS_LATEST: ${{ (github.repository_owner == 'github' || vars.use_large_win_runners_for_speed) && 'windows-latest-xl' || 'windows-latest' }} + qltest: - runs-on: ubuntu-latest-xl + needs: choose-runner + runs-on: ${{ needs.choose-runner.outputs.ubuntu-latest }} strategy: fail-fast: false matrix: diff --git a/.github/workflows/go-tests-other-os.yml b/.github/workflows/go-tests-other-os.yml index 8b0395fad906..f962ca3c5ff5 100644 --- a/.github/workflows/go-tests-other-os.yml +++ b/.github/workflows/go-tests-other-os.yml @@ -45,9 +45,27 @@ jobs: cd go make test cache="${{ steps.query-cache.outputs.cache-dir }}" + choose-runner: + runs-on: ubuntu-latest + outputs: + mac-12: ${{ steps.results.outputs.MAC_12 }} + ubuntu-latest: ${{ steps.results.outputs.UBUNTU_LATEST }} + windows-latest: ${{ steps.results.outputs.WINDOWS_LATEST }} + steps: + - id: results + run: | + echo "UBUNTU_LATEST=$UBUNTU_LATEST" >> $GITHUB_OUTPUT + echo "MAC_12=$MAC_12" >> $GITHUB_OUTPUT + echo "WINDOWS_LATEST=$WINDOWS_LATEST" >> $GITHUB_OUTPUT + env: + UBUNTU_LATEST: ${{ (github.repository_owner == 'github' || vars.use_large_linux_runners_for_speed) && 'ubuntu-latest-xl' || 'ubuntu-latest' }} + MAC_12: ${{ (github.repository_owner == 'github' || vars.use_large_mac_runners_for_speed) && 'macos-12-xl' || 'macos-12' }} + WINDOWS_LATEST: ${{ (github.repository_owner == 'github' || vars.use_large_win_runners_for_speed) && 'windows-latest-xl' || 'windows-latest' }} + test-win: name: Test Windows - runs-on: windows-latest-xl + needs: choose-runner + runs-on: ${{ needs.choose-runner.outputs.windows-latest }} steps: - name: Set up Go ${{ env.GO_VERSION }} uses: actions/setup-go@v5 diff --git a/.github/workflows/go-tests.yml b/.github/workflows/go-tests.yml index 9d518ac70b65..ca1606819d0a 100644 --- a/.github/workflows/go-tests.yml +++ b/.github/workflows/go-tests.yml @@ -18,9 +18,27 @@ on: env: GO_VERSION: '~1.21.0' jobs: + choose-runner: + runs-on: ubuntu-latest + outputs: + mac-12: ${{ steps.results.outputs.MAC_12 }} + ubuntu-latest: ${{ steps.results.outputs.UBUNTU_LATEST }} + windows-latest: ${{ steps.results.outputs.WINDOWS_LATEST }} + steps: + - id: results + run: | + echo "UBUNTU_LATEST=$UBUNTU_LATEST" >> $GITHUB_OUTPUT + echo "MAC_12=$MAC_12" >> $GITHUB_OUTPUT + echo "WINDOWS_LATEST=$WINDOWS_LATEST" >> $GITHUB_OUTPUT + env: + UBUNTU_LATEST: ${{ (github.repository_owner == 'github' || vars.use_large_linux_runners_for_speed) && 'ubuntu-latest-xl' || 'ubuntu-latest' }} + MAC_12: ${{ (github.repository_owner == 'github' || vars.use_large_mac_runners_for_speed) && 'macos-12-xl' || 'macos-12' }} + WINDOWS_LATEST: ${{ (github.repository_owner == 'github' || vars.use_large_win_runners_for_speed) && 'windows-latest-xl' || 'windows-latest' }} + test-linux: name: Test Linux (Ubuntu) - runs-on: ubuntu-latest-xl + needs: choose-runner + runs-on: ${{ needs.choose-runner.outputs.ubuntu-latest }} steps: - name: Set up Go ${{ env.GO_VERSION }} uses: actions/setup-go@v5 diff --git a/.github/workflows/ql-for-ql-build.yml b/.github/workflows/ql-for-ql-build.yml index e8ac1fa0f173..8a1726455bae 100644 --- a/.github/workflows/ql-for-ql-build.yml +++ b/.github/workflows/ql-for-ql-build.yml @@ -10,8 +10,26 @@ env: CARGO_TERM_COLOR: always jobs: + choose-runner: + runs-on: ubuntu-latest + outputs: + mac-12: ${{ steps.results.outputs.MAC_12 }} + ubuntu-latest: ${{ steps.results.outputs.UBUNTU_LATEST }} + windows-latest: ${{ steps.results.outputs.WINDOWS_LATEST }} + steps: + - id: results + run: | + echo "UBUNTU_LATEST=$UBUNTU_LATEST" >> $GITHUB_OUTPUT + echo "MAC_12=$MAC_12" >> $GITHUB_OUTPUT + echo "WINDOWS_LATEST=$WINDOWS_LATEST" >> $GITHUB_OUTPUT + env: + UBUNTU_LATEST: ${{ (github.repository_owner == 'github' || vars.use_large_linux_runners_for_speed) && 'ubuntu-latest-xl' || 'ubuntu-latest' }} + MAC_12: ${{ (github.repository_owner == 'github' || vars.use_large_mac_runners_for_speed) && 'macos-12-xl' || 'macos-12' }} + WINDOWS_LATEST: ${{ (github.repository_owner == 'github' || vars.use_large_win_runners_for_speed) && 'windows-latest-xl' || 'windows-latest' }} + analyze: - runs-on: ubuntu-latest-xl + needs: choose-runner + runs-on: ${{ needs.choose-runner.outputs.ubuntu-latest }} steps: ### Build the queries ### - uses: actions/checkout@v4 diff --git a/.github/workflows/ruby-build.yml b/.github/workflows/ruby-build.yml index 392c6ff83026..71b5fe1772db 100644 --- a/.github/workflows/ruby-build.yml +++ b/.github/workflows/ruby-build.yml @@ -110,8 +110,29 @@ jobs: ruby/extractor/target/release/codeql-extractor-ruby ruby/extractor/target/release/codeql-extractor-ruby.exe retention-days: 1 + choose-runner: + defaults: + run: + working-directory: /tmp + runs-on: ubuntu-latest + outputs: + mac-12: ${{ steps.results.outputs.MAC_12 }} + ubuntu-latest: ${{ steps.results.outputs.UBUNTU_LATEST }} + windows-latest: ${{ steps.results.outputs.WINDOWS_LATEST }} + steps: + - id: results + run: | + echo "UBUNTU_LATEST=$UBUNTU_LATEST" >> $GITHUB_OUTPUT + echo "MAC_12=$MAC_12" >> $GITHUB_OUTPUT + echo "WINDOWS_LATEST=$WINDOWS_LATEST" >> $GITHUB_OUTPUT + env: + UBUNTU_LATEST: ${{ (github.repository_owner == 'github' || vars.use_large_linux_runners_for_speed) && 'ubuntu-latest-xl' || 'ubuntu-latest' }} + MAC_12: ${{ (github.repository_owner == 'github' || vars.use_large_mac_runners_for_speed) && 'macos-12-xl' || 'macos-12' }} + WINDOWS_LATEST: ${{ (github.repository_owner == 'github' || vars.use_large_win_runners_for_speed) && 'windows-latest-xl' || 'windows-latest' }} + compile-queries: - runs-on: ubuntu-latest-xl + needs: choose-runner + runs-on: ${{ needs.choose-runner.outputs.ubuntu-latest }} steps: - uses: actions/checkout@v4 - name: Fetch CodeQL diff --git a/.github/workflows/ruby-qltest.yml b/.github/workflows/ruby-qltest.yml index 19d5325091fd..e94d182cfdc6 100644 --- a/.github/workflows/ruby-qltest.yml +++ b/.github/workflows/ruby-qltest.yml @@ -49,8 +49,30 @@ jobs: --dbscheme=ql/lib/ruby.dbscheme --target-dbscheme=downgrades/initial/ruby.dbscheme | xargs codeql execute upgrades testdb diff -q testdb/ruby.dbscheme downgrades/initial/ruby.dbscheme + + choose-runner: + defaults: + run: + working-directory: /tmp + runs-on: ubuntu-latest + outputs: + mac-12: ${{ steps.results.outputs.MAC_12 }} + ubuntu-latest: ${{ steps.results.outputs.UBUNTU_LATEST }} + windows-latest: ${{ steps.results.outputs.WINDOWS_LATEST }} + steps: + - id: results + run: | + echo "UBUNTU_LATEST=$UBUNTU_LATEST" >> $GITHUB_OUTPUT + echo "MAC_12=$MAC_12" >> $GITHUB_OUTPUT + echo "WINDOWS_LATEST=$WINDOWS_LATEST" >> $GITHUB_OUTPUT + env: + UBUNTU_LATEST: ${{ (github.repository_owner == 'github' || vars.use_large_linux_runners_for_speed) && 'ubuntu-latest-xl' || 'ubuntu-latest' }} + MAC_12: ${{ (github.repository_owner == 'github' || vars.use_large_mac_runners_for_speed) && 'macos-12-xl' || 'macos-12' }} + WINDOWS_LATEST: ${{ (github.repository_owner == 'github' || vars.use_large_win_runners_for_speed) && 'windows-latest-xl' || 'windows-latest' }} + qltest: - runs-on: ubuntu-latest-xl + needs: choose-runner + runs-on: ${{ needs.choose-runner.outputs.ubuntu-latest }} strategy: fail-fast: false steps: diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index ff9cd29e238d..649b5b930e87 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -34,41 +34,68 @@ on: - codeql-cli-* jobs: + choose-runner: + runs-on: ubuntu-latest + outputs: + mac-12: ${{ steps.results.outputs.MAC_12 }} + ubuntu-latest: ${{ steps.results.outputs.UBUNTU_LATEST }} + windows-latest: ${{ steps.results.outputs.WINDOWS_LATEST }} + steps: + - id: results + run: | + echo "UBUNTU_LATEST=$UBUNTU_LATEST" >> $GITHUB_OUTPUT + echo "MAC_12=$MAC_12" >> $GITHUB_OUTPUT + echo "WINDOWS_LATEST=$WINDOWS_LATEST" >> $GITHUB_OUTPUT + env: + UBUNTU_LATEST: ${{ (github.repository_owner == 'github' || vars.use_large_linux_runners_for_speed) && 'ubuntu-latest-xl' || 'ubuntu-latest' }} + MAC_12: ${{ (github.repository_owner == 'github' || vars.use_large_mac_runners_for_speed) && 'macos-12-xl' || 'macos-12' }} + WINDOWS_LATEST: ${{ (github.repository_owner == 'github' || vars.use_large_win_runners_for_speed) && 'windows-latest-xl' || 'windows-latest' }} + # not using a matrix as you cannot depend on a specific job in a matrix, and we want to start linux checks # without waiting for the macOS build build-and-test-macos: - runs-on: macos-12-xl + needs: choose-runner + runs-on: ${{ needs.choose-runner.outputs.mac-12 }} steps: - uses: actions/checkout@v4 - uses: ./swift/actions/build-and-test build-and-test-linux: - runs-on: ubuntu-latest-xl + needs: choose-runner + runs-on: ${{ needs.choose-runner.outputs.ubuntu-latest }} steps: - uses: actions/checkout@v4 - uses: ./swift/actions/build-and-test qltests-linux: - needs: build-and-test-linux - runs-on: ubuntu-latest-xl + needs: + - build-and-test-linux + - choose-runner + runs-on: ${{ needs.choose-runner.outputs.ubuntu-latest }} steps: - uses: actions/checkout@v4 - uses: ./swift/actions/run-ql-tests qltests-macos: if : ${{ github.event_name == 'pull_request' }} - needs: build-and-test-macos - runs-on: macos-12-xl + needs: + - build-and-test-macos + - choose-runner + runs-on: ${{ needs.choose-runner.outputs.mac-12 }} steps: - uses: actions/checkout@v4 - uses: ./swift/actions/run-ql-tests integration-tests-linux: - needs: build-and-test-linux - runs-on: ubuntu-latest-xl + needs: + - build-and-test-linux + - choose-runner + runs-on: ${{ needs.choose-runner.outputs.ubuntu-latest }} steps: - uses: actions/checkout@v4 - uses: ./swift/actions/run-integration-tests integration-tests-macos: if : ${{ github.event_name == 'pull_request' }} - needs: build-and-test-macos - runs-on: macos-12-xl + needs: + - build-and-test-macos + - choose-runner + runs-on: ${{ needs.choose-runner.outputs.mac-12 }} timeout-minutes: 60 steps: - uses: actions/checkout@v4