mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-08-27 15:07:03 +01:00
Merge branch 'dev' into V7
This commit is contained in:
@@ -55,6 +55,7 @@ jobs:
|
||||
start-gate:
|
||||
name: CI Start Gate
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 1
|
||||
steps:
|
||||
- name: GitHub Requires at Least One Step for a Job
|
||||
run: exit 0
|
||||
@@ -63,6 +64,7 @@ jobs:
|
||||
name: Build ReleaseNotes for Other Jobs
|
||||
needs: start-gate
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 5
|
||||
steps:
|
||||
- name: Install Native Dependencies
|
||||
run: |
|
||||
@@ -98,6 +100,7 @@ jobs:
|
||||
name: Validate Nix Flake
|
||||
needs: start-gate
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 20
|
||||
env:
|
||||
TEST_TGS_VERSION: "6.17.0" # Version we use here doesn't matter as it won't be executed. Just used to download a zip and calc hash
|
||||
steps:
|
||||
@@ -148,6 +151,7 @@ jobs:
|
||||
name: Run CodeQL
|
||||
needs: start-gate
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 15
|
||||
permissions:
|
||||
security-events: write
|
||||
env:
|
||||
@@ -215,6 +219,7 @@ jobs:
|
||||
dmapi-build:
|
||||
name: Build DMAPI
|
||||
needs: start-gate
|
||||
timeout-minutes: 5
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -314,6 +319,7 @@ jobs:
|
||||
opendream-build:
|
||||
name: Build DMAPI (OpenDream)
|
||||
needs: start-gate
|
||||
timeout-minutes: 10
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -371,6 +377,7 @@ jobs:
|
||||
name: Check Nuget Versions Match Tools
|
||||
runs-on: ubuntu-latest
|
||||
needs: start-gate
|
||||
timeout-minutes: 1
|
||||
steps:
|
||||
- name: Checkout (Branch)
|
||||
uses: actions/checkout@v4
|
||||
@@ -428,6 +435,7 @@ jobs:
|
||||
name: Build gh-pages
|
||||
needs: build-releasenotes
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 10
|
||||
steps:
|
||||
- name: Setup dotnet
|
||||
uses: actions/setup-dotnet@v4
|
||||
@@ -506,6 +514,7 @@ jobs:
|
||||
name: Build Docker Image
|
||||
runs-on: ubuntu-latest
|
||||
needs: start-gate
|
||||
timeout-minutes: 10
|
||||
env:
|
||||
TGS_TELEMETRY_KEY_FILE: tgs_telemetry_key.txt
|
||||
steps:
|
||||
@@ -533,6 +542,7 @@ jobs:
|
||||
linux-unit-tests:
|
||||
name: Linux Tests
|
||||
needs: start-gate
|
||||
timeout-minutes: 10
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -607,6 +617,7 @@ jobs:
|
||||
windows-unit-tests:
|
||||
name: Windows Tests
|
||||
needs: start-gate
|
||||
timeout-minutes: 15
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -668,6 +679,7 @@ jobs:
|
||||
name: Prepare Live Tests Cache of EDGE Versions
|
||||
needs: start-gate
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 1
|
||||
steps:
|
||||
- name: Cache BYOND .zips (Linux)
|
||||
uses: actions/cache@v4
|
||||
@@ -708,6 +720,7 @@ jobs:
|
||||
windows-integration-tests:
|
||||
name: Windows Live Tests
|
||||
needs: [dmapi-build, opendream-build, prep-edge-versions]
|
||||
timeout-minutes: 60
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -929,6 +942,7 @@ jobs:
|
||||
linux-integration-tests:
|
||||
name: Linux Live Tests
|
||||
needs: [dmapi-build, opendream-build, prep-edge-versions]
|
||||
timeout-minutes: 60
|
||||
services: # We start all dbs here so we can just code the stuff once
|
||||
mssql:
|
||||
image: ${{ (matrix.database-type == 'SqlServer') && 'mcr.microsoft.com/mssql/server:2019-latest' || '' }}
|
||||
@@ -1120,6 +1134,7 @@ jobs:
|
||||
name: OpenAPI Spec Validation
|
||||
needs: windows-integration-tests
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 5
|
||||
steps:
|
||||
- name: Install IBM OpenAPI Validator
|
||||
run: npm i -g ibm-openapi-validator@0.51.3
|
||||
@@ -1145,6 +1160,7 @@ jobs:
|
||||
|
||||
upload-code-coverage:
|
||||
name: Upload Code Coverage
|
||||
timeout-minutes: 5
|
||||
needs:
|
||||
[
|
||||
linux-unit-tests,
|
||||
@@ -1411,6 +1427,7 @@ jobs:
|
||||
name: Build .deb Package # Can't do i386 due to https://github.com/dotnet/core/issues/4595
|
||||
needs: build-releasenotes
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 15
|
||||
env:
|
||||
TGS_TELEMETRY_KEY_FILE: /tmp/tgs_telemetry_key.txt
|
||||
steps:
|
||||
@@ -1576,6 +1593,7 @@ jobs:
|
||||
name: Build Windows Installer .exe
|
||||
runs-on: windows-2025
|
||||
needs: start-gate
|
||||
timeout-minutes: 15
|
||||
env:
|
||||
TGS_TELEMETRY_KEY_FILE: C:/tgs_telemetry_key.txt
|
||||
steps:
|
||||
@@ -1721,6 +1739,7 @@ jobs:
|
||||
name: Check winget-pkgs Pull Request Template is up to date
|
||||
needs: build-releasenotes
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 5
|
||||
steps:
|
||||
- name: Setup dotnet
|
||||
uses: actions/setup-dotnet@v4
|
||||
@@ -1771,6 +1790,7 @@ jobs:
|
||||
ci-completion-gate:
|
||||
if: always() && !cancelled()
|
||||
name: CI Completion Gate
|
||||
timeout-minutes: 1
|
||||
needs:
|
||||
[
|
||||
pages-build,
|
||||
@@ -2448,13 +2468,6 @@ jobs:
|
||||
asset_name: tgstation-server-installer.exe
|
||||
asset_content_type: application/octet-stream
|
||||
|
||||
update-nix:
|
||||
name: Nix Deployment
|
||||
needs: changelog-regen
|
||||
if: (!(cancelled() || failure())) && needs.changelog-regen.result == 'success'
|
||||
uses: ./.github/workflows/nix-deployment.yml
|
||||
secrets: inherit
|
||||
|
||||
changelog-regen:
|
||||
name: Regenerate Changelog
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
name: Nix Deployment
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
update-nix:
|
||||
name: Update Nix SHA (master)
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Install Native Packages # Name checked in rerunFlakyTests.js
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y xmlstarlet
|
||||
|
||||
- name: Setup Nix
|
||||
uses: cachix/install-nix-action@v31
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-unstable
|
||||
|
||||
- name: Generate App Token
|
||||
id: app-token-generation
|
||||
uses: actions/create-github-app-token@v1
|
||||
with:
|
||||
app-id: ${{ secrets.APP_ID }}
|
||||
private-key: ${{ secrets.APP_PRIVATE_KEY }}
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
token: ${{ steps.app-token-generation.outputs.token }}
|
||||
ref: master
|
||||
fetch-depth: 0
|
||||
# fetch-tags: true Doesn't work, see https://github.com/actions/checkout/issues/1471
|
||||
|
||||
- name: Parse TGS version
|
||||
run: echo "TGS_VERSION=$(xmlstarlet sel -N X="http://schemas.microsoft.com/developer/msbuild/2003" --template --value-of /X:Project/X:PropertyGroup/X:TgsCoreVersion build/Version.props)" >> $GITHUB_ENV
|
||||
|
||||
- name: Retrieve ServerConsole.zip Artifact
|
||||
run: |
|
||||
mkdir release
|
||||
curl -L https://github.com/tgstation/tgstation-server/releases/download/tgstation-server-v${{ env.TGS_VERSION }}/ServerConsole.zip -f -o release/ServerConsole.zip
|
||||
|
||||
- name: Regenerate Nix Hash
|
||||
run: |
|
||||
nix hash path ./release > build/package/nix/ServerConsole.sha256
|
||||
cat build/package/nix/ServerConsole.sha256
|
||||
rm -rf ./release
|
||||
|
||||
- name: Commit
|
||||
run: |
|
||||
git config --global push.default simple
|
||||
git config user.name "tgstation-server-ci[bot]"
|
||||
git config user.email "161980869+tgstation-server-ci[bot]@users.noreply.github.com"
|
||||
git add build/package/nix/ServerConsole.sha256
|
||||
git commit -m "Update nix SHA256 for TGS v${{ env.TGS_VERSION }}"
|
||||
|
||||
- name: Re-tag
|
||||
run: |
|
||||
git tag -d tgstation-server-v${{ env.TGS_VERSION }}
|
||||
git tag -a tgstation-server-v${{ env.TGS_VERSION }} -m tgstation-server-v${{ env.TGS_VERSION }}
|
||||
|
||||
- name: Push Commit
|
||||
run: git push
|
||||
|
||||
- name: Force Push Tags
|
||||
run: git push -f origin tag tgstation-server-v${{ env.TGS_VERSION }}
|
||||
@@ -0,0 +1,53 @@
|
||||
name: Regenerate Nix Nuget Dependencies
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened, reopened]
|
||||
branches:
|
||||
- dev
|
||||
- master
|
||||
- V7
|
||||
|
||||
concurrency:
|
||||
group: "regenerate-nix-dependencies-${{ github.head_ref || github.run_id }}-${{ github.event_name }}"
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
regenerate-nix-dependencies:
|
||||
name: Regenerate Nix Dependencies
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event.pull_request.head.repo.id == github.event.pull_request.base.repo.id
|
||||
steps:
|
||||
- name: Setup Nix
|
||||
uses: cachix/install-nix-action@v31
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-unstable
|
||||
|
||||
- name: Generate App Token
|
||||
id: app-token-generation
|
||||
uses: actions/create-github-app-token@v1
|
||||
with:
|
||||
app-id: ${{ secrets.APP_ID }}
|
||||
private-key: ${{ secrets.APP_PRIVATE_KEY }}
|
||||
|
||||
- name: Checkout (PR Merge)
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: "refs/pull/${{ github.event.pull_request.number }}/head"
|
||||
|
||||
- name: Regenerate Dependencies
|
||||
run: |
|
||||
cd build/package/nix
|
||||
nix shell nixpkgs#nuget-to-json nixpkgs#dotnetCorePackages.sdk_8_0 -c "./GenDeps.sh"
|
||||
|
||||
- name: Commit
|
||||
run: |
|
||||
git config user.name "tgstation-server-ci[bot]"
|
||||
git config user.email "161980869+tgstation-server-ci[bot]@users.noreply.github.com"
|
||||
git add build/package/nix/deps.json
|
||||
git diff-index --quiet HEAD || git commit -m "Regenerate Nix Hashes based on Nuget Packages"
|
||||
|
||||
- name: Push
|
||||
run: |
|
||||
git config --global push.default simple
|
||||
git push -u origin ${{ github.event.pull_request.head.ref }} "https://tgstation-server-ci:${{ steps.app-token-generation.outputs.token }}@github.com/tgstation/tgstation-server" 2>&1
|
||||
Reference in New Issue
Block a user