diff --git a/.github/workflows/auto_changelog.yml b/.github/workflows/auto_changelog.yml index f1e1abbdd2c..a2a438ee009 100644 --- a/.github/workflows/auto_changelog.yml +++ b/.github/workflows/auto_changelog.yml @@ -10,7 +10,7 @@ permissions: contents: write jobs: auto_changelog: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: github.event.pull_request.merged == true steps: - name: Checkout diff --git a/.github/workflows/autowiki.yml b/.github/workflows/autowiki.yml index ac2c9ae31d1..d6e8c589097 100644 --- a/.github/workflows/autowiki.yml +++ b/.github/workflows/autowiki.yml @@ -8,7 +8,7 @@ permissions: jobs: autowiki: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: "Check for AUTOWIKI_USERNAME" id: secrets_set diff --git a/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml index 184fd52bd82..e4201249185 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -17,7 +17,7 @@ jobs: start_gate: if: ( !contains(github.event.head_commit.message, '[ci skip]') ) name: Start Gate - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Mandatory Empty Step run: exit 0 @@ -80,7 +80,7 @@ jobs: run_alternate_tests, run_linters, ] - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Decide whether the needed jobs succeeded or failed uses: re-actors/alls-green@release/v1 diff --git a/.github/workflows/codeowner_reviews.yml b/.github/workflows/codeowner_reviews.yml index 0582b0bbdef..f1cb174de37 100644 --- a/.github/workflows/codeowner_reviews.yml +++ b/.github/workflows/codeowner_reviews.yml @@ -7,7 +7,7 @@ on: jobs: assign-users: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 timeout-minutes: 5 steps: diff --git a/.github/workflows/collect_data.yml b/.github/workflows/collect_data.yml index 87ea23ed48f..60cf249dfca 100644 --- a/.github/workflows/collect_data.yml +++ b/.github/workflows/collect_data.yml @@ -18,7 +18,7 @@ on: jobs: collect_data: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 5 outputs: maps: ${{ steps.map_finder.outputs.maps }} diff --git a/.github/workflows/compare_screenshots.yml b/.github/workflows/compare_screenshots.yml index fb4a890b83b..b814905b9b8 100644 --- a/.github/workflows/compare_screenshots.yml +++ b/.github/workflows/compare_screenshots.yml @@ -6,7 +6,7 @@ on: jobs: compare_screenshots: timeout-minutes: 15 - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v6 - name: Setup directory diff --git a/.github/workflows/compile_all_maps.yml b/.github/workflows/compile_all_maps.yml index 9a460278a62..c80c0f4ae05 100644 --- a/.github/workflows/compile_all_maps.yml +++ b/.github/workflows/compile_all_maps.yml @@ -10,7 +10,7 @@ on: jobs: compile_all_stations: name: Compile All Station Maps - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 5 steps: @@ -31,7 +31,7 @@ jobs: compile_all_templates: name: Compile All Templates - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 5 steps: diff --git a/.github/workflows/compile_changelogs.yml b/.github/workflows/compile_changelogs.yml index 1d662a56b10..d23589260fb 100644 --- a/.github/workflows/compile_changelogs.yml +++ b/.github/workflows/compile_changelogs.yml @@ -8,7 +8,7 @@ on: jobs: compile: name: "Compile changelogs" - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 permissions: contents: write steps: diff --git a/.github/workflows/discord_discussions.yml b/.github/workflows/discord_discussions.yml index c3347a23a9e..da1b2b22387 100644 --- a/.github/workflows/discord_discussions.yml +++ b/.github/workflows/discord_discussions.yml @@ -18,7 +18,7 @@ concurrency: jobs: manage-discord-discussion: name: Manage Discord Discussion - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: contains(github.event.pull_request.labels.*.name, 'Discord Discussion') steps: - name: Fail if vars.DISCORD_DISCUSSIONS_CHANNEL_ID is unset diff --git a/.github/workflows/discord_pr_announce.yml b/.github/workflows/discord_pr_announce.yml index d6150e76fb3..6ceb3546399 100644 --- a/.github/workflows/discord_pr_announce.yml +++ b/.github/workflows/discord_pr_announce.yml @@ -5,7 +5,7 @@ on: jobs: notify: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: ${{ github.event.action != 'labeled' || github.event.label.name == 'Stale' }} steps: - name: "Check for DISCORD_WEBHOOK" diff --git a/.github/workflows/gbp.yml b/.github/workflows/gbp.yml index 5a8c1e9dc5c..f25f0bd05e2 100644 --- a/.github/workflows/gbp.yml +++ b/.github/workflows/gbp.yml @@ -5,7 +5,7 @@ on: jobs: # labeler must run before gbp because gbp calculates itself based on labels labeler: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: github.event.action == 'opened' || github.event.action == 'synchronize' permissions: pull-requests: write # to apply labels @@ -27,7 +27,7 @@ jobs: }); console.log(`Labels updated: ${new_labels}`); gbp: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: github.event.action == 'opened' || github.event.action == 'closed' steps: - name: "Check for ACTION_ENABLER secret and pass true to output if it exists to be checked by later steps" diff --git a/.github/workflows/gbp_collect.yml b/.github/workflows/gbp_collect.yml index ada99b23d95..715af0126ef 100644 --- a/.github/workflows/gbp_collect.yml +++ b/.github/workflows/gbp_collect.yml @@ -6,7 +6,7 @@ on: workflow_dispatch: jobs: gbp_collection: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: "Check for ACTION_ENABLER secret and pass true to output if it exists to be checked by later steps" id: value_holder diff --git a/.github/workflows/generate_client_storage.yml b/.github/workflows/generate_client_storage.yml index fc95e895096..f601288b14b 100644 --- a/.github/workflows/generate_client_storage.yml +++ b/.github/workflows/generate_client_storage.yml @@ -10,7 +10,7 @@ jobs: dispatch_repo: if: ( !contains(github.event.head_commit.message, '[ci skip]') ) name: Repository Dispatch - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Generate App Token id: app-token-generation diff --git a/.github/workflows/generate_documentation.yml b/.github/workflows/generate_documentation.yml index d0f272060cc..3949732751c 100644 --- a/.github/workflows/generate_documentation.yml +++ b/.github/workflows/generate_documentation.yml @@ -10,7 +10,7 @@ jobs: permissions: contents: write # for JamesIves/github-pages-deploy-action to push changes in repo if: ( !contains(github.event.head_commit.message, '[ci skip]') ) - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 concurrency: gen-docs steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/remove_guide_comments.yml b/.github/workflows/remove_guide_comments.yml index d704befb3b8..e5e168df7f5 100644 --- a/.github/workflows/remove_guide_comments.yml +++ b/.github/workflows/remove_guide_comments.yml @@ -6,7 +6,7 @@ on: types: [opened] jobs: remove_guide_comments: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Checkout uses: actions/checkout@v6 diff --git a/.github/workflows/rerun_flaky_tests.yml b/.github/workflows/rerun_flaky_tests.yml index 1e3e1726302..62f12dc4772 100644 --- a/.github/workflows/rerun_flaky_tests.yml +++ b/.github/workflows/rerun_flaky_tests.yml @@ -6,7 +6,7 @@ on: - completed jobs: rerun_flaky_tests: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: ${{ github.event.workflow_run.conclusion == 'failure' && github.event.workflow_run.run_attempt == 1 }} steps: - name: Checkout @@ -18,7 +18,7 @@ jobs: const { rerunFlakyTests } = await import('${{ github.workspace }}/tools/pull_request_hooks/rerunFlakyTests.js') await rerunFlakyTests({ github, context }) report_flaky_tests: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: ${{ github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.run_attempt == 2 }} steps: - name: Checkout diff --git a/.github/workflows/round_id_linker.yml b/.github/workflows/round_id_linker.yml index 7fb0ee8c4f3..9b3ddfe2d36 100644 --- a/.github/workflows/round_id_linker.yml +++ b/.github/workflows/round_id_linker.yml @@ -5,7 +5,7 @@ on: jobs: link_rounds: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: tgstation/round_linker@master with: diff --git a/.github/workflows/run_integration_tests.yml b/.github/workflows/run_integration_tests.yml index 0f7691ea23d..22401f63f28 100644 --- a/.github/workflows/run_integration_tests.yml +++ b/.github/workflows/run_integration_tests.yml @@ -26,7 +26,7 @@ jobs: # Otherwise, it will output `Run Tests (map; max)`. # For example, `Run Tests (runtimestation; 515)`. name: Run Tests (${{ inputs.major && format('{0}.{1}; ', inputs.major, inputs.minor) || '' }}${{ inputs.map }}; ${{ inputs.max_required_byond_client }}) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 timeout-minutes: 15 steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/run_linters.yml b/.github/workflows/run_linters.yml index f50eb43a9b1..4219854c93b 100644 --- a/.github/workflows/run_linters.yml +++ b/.github/workflows/run_linters.yml @@ -5,7 +5,7 @@ on: jobs: linters: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 5 steps: @@ -23,14 +23,14 @@ jobs: uses: actions/cache@v5 with: path: tools/bootstrap/.cache - key: ${{ runner.os }}-bootstrap-${{ hashFiles('tools/requirements.txt') }} + key: ${{ runner.os }}-bootstrap-${{ hashFiles('/tools/requirements.txt') }} restore-keys: | ${{ runner.os }}-bootstrap- - name: Restore Rust cache uses: actions/cache@v5 with: path: ~/.cargo - key: ${{ runner.os }}-rust-${{ hashFiles('tools/ci/ci_dependencies.sh')}} + key: ${{ runner.os }}-rust-${{ hashFiles('/tools/ci/ci_dependencies.sh')}} restore-keys: | ${{ runner.os }}-rust- - name: Restore Cutter cache diff --git a/.github/workflows/setup_build_artifact.yml b/.github/workflows/setup_build_artifact.yml index 73def14efbd..57e3a7715f5 100644 --- a/.github/workflows/setup_build_artifact.yml +++ b/.github/workflows/setup_build_artifact.yml @@ -11,7 +11,7 @@ on: jobs: setup_build_artifact: name: Setup build artifact (${{ format('{0}.{1}', inputs.major, inputs.minor) }}) - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 timeout-minutes: 5 steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/show_screenshot_test_results.yml b/.github/workflows/show_screenshot_test_results.yml index 5f5214cba3d..2cfd4f2fd4a 100644 --- a/.github/workflows/show_screenshot_test_results.yml +++ b/.github/workflows/show_screenshot_test_results.yml @@ -13,7 +13,7 @@ jobs: show_screenshot_test_results: if: ( !contains(github.event.head_commit.message, '[ci skip]') && github.event.workflow_run.run_attempt == 1 ) name: Show Screenshot Test Results - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: "Check for ARTIFACTS_FILE_HOUSE_KEY" id: secrets_set diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index f6d2ca768be..1a8bc4d3e91 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -12,7 +12,7 @@ jobs: permissions: issues: write # for actions/stale to close stale issues pull-requests: write # for actions/stale to close stale PRs - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/stale@v10 diff --git a/.github/workflows/test_merge_bot.yml b/.github/workflows/test_merge_bot.yml index ef419202fd5..ee5d01e15f5 100644 --- a/.github/workflows/test_merge_bot.yml +++ b/.github/workflows/test_merge_bot.yml @@ -11,7 +11,7 @@ on: jobs: test_merge_bot: name: Test Merge Detector - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Check for GET_TEST_MERGES_URL id: secrets_set diff --git a/.github/workflows/tgs_test.yml b/.github/workflows/tgs_test.yml index ba97e53d871..fefe765bb75 100644 --- a/.github/workflows/tgs_test.yml +++ b/.github/workflows/tgs_test.yml @@ -42,7 +42,7 @@ jobs: test_tgs_docker: if: ( !contains(github.event.head_commit.message, '[ci skip]') ) name: Test TGS Docker - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 concurrency: group: test_tgs_docker-${{ github.head_ref || github.run_id }} cancel-in-progress: true diff --git a/.github/workflows/update_tgs_dmapi.yml b/.github/workflows/update_tgs_dmapi.yml index 819fe4c6345..6335f9047f5 100644 --- a/.github/workflows/update_tgs_dmapi.yml +++ b/.github/workflows/update_tgs_dmapi.yml @@ -7,7 +7,7 @@ on: jobs: update-dmapi: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 name: Update the TGS DMAPI permissions: contents: write diff --git a/dependencies.sh b/dependencies.sh index c79d45cd502..4af9947e3bb 100644 --- a/dependencies.sh +++ b/dependencies.sh @@ -20,7 +20,7 @@ export BUN_VERSION=1.2.16 export SPACEMAN_DMM_VERSION=suite-1.11 # Python version for mapmerge and other tools -export PYTHON_VERSION=3.9.0 +export PYTHON_VERSION=3.11.0 #dreamluau repo export DREAMLUAU_REPO="tgstation/dreamluau" diff --git a/tools/bootstrap/python b/tools/bootstrap/python index 0c8d7020206..d0fa7258ff1 100755 --- a/tools/bootstrap/python +++ b/tools/bootstrap/python @@ -77,6 +77,7 @@ fi # Use pip to install our requirements if [ ! -f "$PythonDir/requirements.txt" ] || [ "$(b2sum < "$Sdk/requirements.txt")" != "$(b2sum < "$PythonDir/requirements.txt")" ]; then echo "Updating dependencies..." + "$PythonExe" -m ensurepip --default-pip "$PythonExe" -m pip install -U wheel "$PythonExe" -m pip install -U pip -r "$Sdk/requirements.txt" cp "$Sdk/requirements.txt" "$PythonDir/requirements.txt" diff --git a/tools/requirements.txt b/tools/requirements.txt index b271fe9f547..82347b13a29 100644 --- a/tools/requirements.txt +++ b/tools/requirements.txt @@ -1,13 +1,13 @@ -pygit2==1.7.2 -bidict==0.22.0 -Pillow==9.3.0 +pygit2==1.19.0 +bidict==0.23.1 +Pillow==11.1.0 # changelogs -PyYaml==6.0.1 -beautifulsoup4==4.9.3 +PyYaml==6.0.3 +beautifulsoup4==4.14.3 # ezdb -mysql-connector-python==8.0.33 +mysql-connector-python==9.5.0 # icon cutter -numpy==1.26.0 +numpy==2.3.5