forked from space-syndicate/space-station-14
Compare commits
66 Commits
master
...
backup-mas
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d2c9e4a41e | ||
|
|
dcf254f0c2 | ||
| 29b91de9c0 | |||
| 0cae8cab95 | |||
| 247e2ceee4 | |||
| 78fb363d47 | |||
| cbe6e355bb | |||
| 5099ee8bb4 | |||
| 69d4134d71 | |||
| a1a795d2d4 | |||
| c8087d82d1 | |||
| 07ed10782a | |||
| e048406782 | |||
| 047241e3ce | |||
| 723b9f893c | |||
| f98fa916fd | |||
| 1c87bf9d1b | |||
| 31f769be43 | |||
| 6c3a12f5c1 | |||
| 32130b1cf2 | |||
| c21f12fb73 | |||
| dafb20afdb | |||
| 6c6fd192af | |||
| bba643846e | |||
| 0670e5079a | |||
| 1602fbd742 | |||
| cad2785a97 | |||
| 11219e47f0 | |||
| 1efd22e648 | |||
| 4213d083f9 | |||
| 34bba67a59 | |||
| f1d4f62047 | |||
| 6152a7b166 | |||
| cc7e88f934 | |||
| 1bfd73febc | |||
| d8f34b184f | |||
| 73b0052649 | |||
| 9ae469991f | |||
| 2a8530eaf6 | |||
| 93f160652e | |||
| 3aaa315702 | |||
| 497d6d46eb | |||
| d88e65e0b5 | |||
| 86a584c502 | |||
| 0afe78f6c6 | |||
| 42ad3b8313 | |||
| 72b0f113ae | |||
| 57bc9cca27 | |||
| 251d29f8d3 | |||
|
|
b9ebcaa1a2 | ||
|
|
d2f3e0929c | ||
|
|
c702820686 | ||
|
|
1ca32d40cf | ||
|
|
af791c5fb7 | ||
|
|
ff48caac72 | ||
|
|
62cf5e8dcc | ||
|
|
2ebc70e24b | ||
|
|
24336d6df5 | ||
|
|
147e6c9ce6 | ||
|
|
40c89f04ad | ||
|
|
8fe3a33813 | ||
|
|
c190b3a8af | ||
| bce50cad4c | |||
| 506ba9fcd2 | |||
| 100e967e86 | |||
|
|
fa969b0315 |
14
.github/workflows/labeler-approve.yml
vendored
14
.github/workflows/labeler-approve.yml
vendored
@@ -1,4 +1,4 @@
|
||||
name: "Labels: Approve"
|
||||
name: "Labels: Approve"
|
||||
|
||||
on:
|
||||
pull_request_review:
|
||||
@@ -11,10 +11,8 @@ jobs:
|
||||
if: github.event.review.state == 'approved'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Remove review labels
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
API="${{ github.server_url }}/api/v1/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/labels"
|
||||
curl -sS -X DELETE -H "Authorization: token $GITHUB_TOKEN" "$API/Status%3A%20Needs%20Review" || true
|
||||
curl -sS -X DELETE -H "Authorization: token $GITHUB_TOKEN" "$API/Status%3A%20Awaiting%20Changes" || true
|
||||
- uses: actions-ecosystem/action-remove-labels@v1
|
||||
with:
|
||||
labels: |
|
||||
Status: Needs Review
|
||||
Status: Awaiting Changes
|
||||
|
||||
16
.github/workflows/labeler-changes.yml
vendored
16
.github/workflows/labeler-changes.yml
vendored
@@ -1,4 +1,4 @@
|
||||
name: "Labels: Changes"
|
||||
name: "Labels: Changes"
|
||||
|
||||
on:
|
||||
pull_request_review:
|
||||
@@ -11,11 +11,9 @@ jobs:
|
||||
if: github.event.review.state == 'changes_requested'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Update labels
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
API="${{ github.server_url }}/api/v1/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/labels"
|
||||
curl -sS -X POST -H "Authorization: token $GITHUB_TOKEN" -H "Content-Type: application/json" \
|
||||
-d '{"labels":["Status: Awaiting Changes"]}' "$API"
|
||||
curl -sS -X DELETE -H "Authorization: token $GITHUB_TOKEN" "$API/Status%3A%20Needs%20Review" || true
|
||||
- uses: actions-ecosystem/action-add-labels@v1
|
||||
with:
|
||||
labels: "Status: Awaiting Changes"
|
||||
- uses: actions-ecosystem/action-remove-labels@v1
|
||||
with:
|
||||
labels: "Status: Needs Review"
|
||||
|
||||
4
.github/workflows/labeler-conflict.yml
vendored
4
.github/workflows/labeler-conflict.yml
vendored
@@ -57,10 +57,8 @@ jobs:
|
||||
|
||||
if [ -n "$HAS_LABEL" ]; then
|
||||
echo "Removing stale conflict label..."
|
||||
# URL-encode the label name (handles spaces, colons, etc.)
|
||||
LABEL_NAME_ENCODED=$(echo "$LABEL_NAME" | jq -rR @uri)
|
||||
curl -s -X DELETE -H "Authorization: token $API_TOKEN" \
|
||||
"$API_URL/repos/$REPO_OWNER/$REPO_NAME/issues/$PR_INDEX/labels/$LABEL_NAME_ENCODED"
|
||||
"$API_URL/repos/$REPO_OWNER/$REPO_NAME/issues/$PR_INDEX/labels/$LABEL_NAME"
|
||||
echo "Conflict label removed."
|
||||
fi
|
||||
fi
|
||||
|
||||
16
.github/workflows/labeler-needsreview.yml
vendored
16
.github/workflows/labeler-needsreview.yml
vendored
@@ -1,4 +1,4 @@
|
||||
name: "Labels: Review"
|
||||
name: "Labels: Review"
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
@@ -8,11 +8,9 @@ jobs:
|
||||
add_label:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Update labels
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
API="${{ github.server_url }}/api/v1/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/labels"
|
||||
curl -sS -X POST -H "Authorization: token $GITHUB_TOKEN" -H "Content-Type: application/json" \
|
||||
-d '{"labels":["S: Needs Review"]}' "$API"
|
||||
curl -sS -X DELETE -H "Authorization: token $GITHUB_TOKEN" "$API/S%3A%20Awaiting%20Changes" || true
|
||||
- uses: actions-ecosystem/action-add-labels@v1
|
||||
with:
|
||||
labels: "S: Needs Review"
|
||||
- uses: actions-ecosystem/action-remove-labels@v1
|
||||
with:
|
||||
labels: "S: Awaiting Changes"
|
||||
|
||||
23
.github/workflows/labeler-review.yml
vendored
Normal file
23
.github/workflows/labeler-review.yml
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
name: "Labels: Approved"
|
||||
on:
|
||||
pull_request_review:
|
||||
types: [submitted]
|
||||
jobs:
|
||||
add_label:
|
||||
# Change the repository name after you've made sure the team name is correct for your fork!
|
||||
if: ${{ (github.repository == 'space-wizards/space-station-14') && (github.event.review.state == 'APPROVED') }}
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: tspascoal/get-user-teams-membership@v3
|
||||
id: checkUserMember
|
||||
with:
|
||||
username: ${{ github.actor }}
|
||||
team: "content-maintainers,junior-maintainers"
|
||||
GITHUB_TOKEN: ${{ secrets.LABELER_PAT }}
|
||||
- if: ${{ steps.checkUserMember.outputs.isTeamMember == 'true' }}
|
||||
uses: actions-ecosystem/action-add-labels@v1
|
||||
with:
|
||||
labels: "S: Approved"
|
||||
12
.github/workflows/labeler-stable.yml
vendored
12
.github/workflows/labeler-stable.yml
vendored
@@ -11,12 +11,6 @@ jobs:
|
||||
add_label:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Add branch label
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
curl -sS -X POST \
|
||||
-H "Authorization: token $GITHUB_TOKEN" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"labels":["Branch: Stable"]}' \
|
||||
"${{ github.server_url }}/api/v1/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/labels"
|
||||
- uses: actions-ecosystem/action-add-labels@v1
|
||||
with:
|
||||
labels: "Branch: Stable"
|
||||
|
||||
12
.github/workflows/labeler-staging.yml
vendored
12
.github/workflows/labeler-staging.yml
vendored
@@ -11,12 +11,6 @@ jobs:
|
||||
add_label:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Add branch label
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
curl -sS -X POST \
|
||||
-H "Authorization: token $GITHUB_TOKEN" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"labels":["Branch: Staging"]}' \
|
||||
"${{ github.server_url }}/api/v1/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/labels"
|
||||
- uses: actions-ecosystem/action-add-labels@v1
|
||||
with:
|
||||
labels: "Branch: Staging"
|
||||
|
||||
17
.github/workflows/labeler-untriaged.yml
vendored
17
.github/workflows/labeler-untriaged.yml
vendored
@@ -1,4 +1,4 @@
|
||||
name: "Labels: Untriaged"
|
||||
name: "Labels: Untriaged"
|
||||
|
||||
on:
|
||||
issues:
|
||||
@@ -10,14 +10,7 @@ jobs:
|
||||
add_label:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Add untriaged label
|
||||
if: github.event.issue.labels[0] == null || github.event.pull_request.labels[0] == null
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
NUMBER="${{ github.event.pull_request.number || github.event.issue.number }}"
|
||||
curl -sS -X POST \
|
||||
-H "Authorization: token $GITHUB_TOKEN" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"labels":["S: Untriaged"]}' \
|
||||
"${{ github.server_url }}/api/v1/repos/${{ github.repository }}/issues/$NUMBER/labels"
|
||||
- uses: actions-ecosystem/action-add-labels@v1
|
||||
if: join(github.event.issue.labels) == ''
|
||||
with:
|
||||
labels: "S: Untriaged"
|
||||
|
||||
64
.github/workflows/publish.yml
vendored
64
.github/workflows/publish.yml
vendored
@@ -15,49 +15,20 @@ jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
CDN_MANIFEST_URL: https://cdn.wylab.me/fork/wylab/manifest
|
||||
RUNNER_TOOL_CACHE: /toolcache
|
||||
steps:
|
||||
- name: Fail if we are attempting to run on the master branch
|
||||
if: ${{GITHUB.REF_NAME == 'master' && github.repository == 'space-wizards/space-station-14'}}
|
||||
run: exit 1
|
||||
|
||||
# - name: Install dependencies
|
||||
# run: sudo apt-get install -y python3-paramiko python3-lxml
|
||||
- name: Install Python dependencies
|
||||
run: pip install --break-system-packages requests paramiko lxml
|
||||
|
||||
- uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
|
||||
- name: Check if build already published
|
||||
id: cdn-check
|
||||
run: |
|
||||
SHA=$(echo "$GITHUB_SHA" | tr '[:upper:]' '[:lower:]')
|
||||
if curl -sSf "$CDN_MANIFEST_URL" | jq -e ".builds[\"$SHA\"]" > /dev/null 2>&1; then
|
||||
echo "Build $SHA already present on CDN; skipping."
|
||||
echo "skip=true" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "Build $SHA not found on CDN; continuing."
|
||||
echo "skip=false" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
- name: Cache NuGet packages
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.nuget/packages
|
||||
key: ${{ runner.os }}-nuget-${{ hashFiles('**/*.csproj', 'global.json') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-nuget-
|
||||
|
||||
- name: Cache RobustToolbox build output
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: RobustToolbox/bin
|
||||
key: ${{ runner.os }}-robust-${{ hashFiles('RobustToolbox/**/*.csproj', 'global.json') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-robust-
|
||||
|
||||
# Wylab-Secrets-Start
|
||||
# Corvax-Secrets-Start
|
||||
- name: Setup secrets
|
||||
env:
|
||||
SSH_KEY: ${{ secrets.SECRETS_PRIVATE_KEY }}
|
||||
@@ -66,43 +37,39 @@ jobs:
|
||||
mkdir -p ~/.ssh
|
||||
echo "${{ secrets.SECRETS_PRIVATE_KEY }}" > ~/.ssh/id_rsa
|
||||
chmod 600 ~/.ssh/id_rsa
|
||||
printf '%s\n' 'Host git.wylab.me' ' Hostname git.wylab.me' ' Port 22' ' User git' ' IdentityFile ~/.ssh/id_rsa' ' StrictHostKeyChecking no' ' UserKnownHostsFile /dev/null' > ~/.ssh/config
|
||||
chmod 600 ~/.ssh/config
|
||||
git clone git@git.wylab.me:wylab/secrets.git Secrets
|
||||
[ -d Secrets/Resources/Prototypes ] && cp -R Secrets/Resources/Prototypes Resources/Prototypes/WylabSecrets
|
||||
[ -d Secrets/Resources/ServerPrototypes ] && cp -R Secrets/Resources/ServerPrototypes Resources/Prototypes/WylabSecretsServer
|
||||
[ -d Secrets/Resources/Locale ] && cp -R Secrets/Resources/Locale Resources/Locale/ru-RU/wylab-secrets
|
||||
[ -d Secrets/Resources/Textures ] && cp -R Secrets/Resources/Textures Resources/Textures/WylabSecrets
|
||||
[ -d Secrets/Resources/Audio ] && cp -R Secrets/Resources/Audio Resources/Audio/WylabSecrets
|
||||
# Wylab-Secrets-End
|
||||
echo "HOST *" > ~/.ssh/config
|
||||
echo " Hostname github.com" >> ~/.ssh/config
|
||||
echo " Port 22" >> ~/.ssh/config
|
||||
echo " StrictHostKeyChecking no" >> ~/.ssh/config
|
||||
git clone git@github.com:corvax-nexus/secrets.git Secrets
|
||||
cp -R Secrets/Resources/Prototypes Resources/Prototypes/CorvaxSecrets
|
||||
cp -R Secrets/Resources/ServerPrototypes Resources/Prototypes/CorvaxSecretsServer
|
||||
cp -R Secrets/Resources/Locale Resources/Locale/ru-RU/corvax-secrets
|
||||
cp -R Secrets/Resources/Textures Resources/Textures/CorvaxSecrets
|
||||
cp -R Secrets/Resources/Audio Resources/Audio/CorvaxSecrets
|
||||
# Corvax-Secrets-End
|
||||
|
||||
- name: Setup .NET Core
|
||||
uses: actions/setup-dotnet@v4.1.0
|
||||
with:
|
||||
dotnet-version: 9.0.x
|
||||
if: ${{ steps.cdn-check.outputs.skip != 'true' }}
|
||||
|
||||
- name: Get Engine Tag
|
||||
run: |
|
||||
cd RobustToolbox
|
||||
git fetch --depth=1
|
||||
if: ${{ steps.cdn-check.outputs.skip != 'true' }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: dotnet restore
|
||||
if: ${{ steps.cdn-check.outputs.skip != 'true' }}
|
||||
|
||||
- name: Build Packaging
|
||||
run: dotnet build Content.Packaging --configuration Release --no-restore /m
|
||||
if: ${{ steps.cdn-check.outputs.skip != 'true' }}
|
||||
|
||||
- name: Package server
|
||||
run: dotnet run --project Content.Packaging server --platform win-x64 --platform win-arm64 --platform linux-x64 --platform linux-arm64 --platform osx-x64 --platform osx-arm64
|
||||
if: ${{ steps.cdn-check.outputs.skip != 'true' }}
|
||||
|
||||
- name: Package client
|
||||
run: dotnet run --project Content.Packaging client --no-wipe-release
|
||||
if: ${{ steps.cdn-check.outputs.skip != 'true' }}
|
||||
|
||||
- name: Publish version
|
||||
run: Tools/publish_multi_request.py
|
||||
@@ -111,10 +78,9 @@ jobs:
|
||||
GITHUB_REPOSITORY: wylab/wylab-station-14
|
||||
FORK_ID: wylab
|
||||
ROBUST_CDN_URL: https://cdn.wylab.me/
|
||||
if: ${{ steps.cdn-check.outputs.skip != 'true' }}
|
||||
|
||||
- name: Trigger Docker image rebuild
|
||||
if: ${{ success() && steps.cdn-check.outputs.skip != 'true' }}
|
||||
if: ${{ success() }}
|
||||
env:
|
||||
DISPATCH_TOKEN: ${{ secrets.DOCKER_TRIGGER_TOKEN }}
|
||||
TARGET_REPO: wylab/WS14-Docker-Linux-Server
|
||||
|
||||
10
.github/workflows/test-packaging.yml
vendored
10
.github/workflows/test-packaging.yml
vendored
@@ -50,19 +50,19 @@ jobs:
|
||||
cd RobustToolbox/
|
||||
git submodule update --init --recursive
|
||||
|
||||
# Wylab-Secrets-Start
|
||||
# Corvax-Secrets-Start
|
||||
- name: Setup secrets
|
||||
env:
|
||||
SSH_KEY: ${{ secrets.SECRETS_PRIVATE_KEY }}
|
||||
if: ${{ env.SSH_KEY != '' }}
|
||||
run: |
|
||||
mkdir -p ~/.ssh
|
||||
mkdir ~/.ssh
|
||||
echo "${{ secrets.SECRETS_PRIVATE_KEY }}" > ~/.ssh/id_rsa
|
||||
chmod 600 ~/.ssh/id_rsa
|
||||
echo "HOST git.wylab.me" > ~/.ssh/config
|
||||
echo " StrictHostKeyChecking no" >> ~/.ssh/config
|
||||
echo "HOST *" > ~/.ssh/config
|
||||
echo "StrictHostKeyChecking no" >> ~/.ssh/config
|
||||
git -c submodule.Secrets.update=checkout submodule update --init
|
||||
# Wylab-Secrets-End
|
||||
# Corvax-Secrets-End
|
||||
|
||||
- name: Setup .NET Core
|
||||
uses: actions/setup-dotnet@v4.1.0
|
||||
|
||||
58
.github/workflows/upstream-sync-merge.yml
vendored
58
.github/workflows/upstream-sync-merge.yml
vendored
@@ -1,58 +0,0 @@
|
||||
name: Upstream Sync Auto-Merge
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ["Build & Test"]
|
||||
types: [completed]
|
||||
branches: [upstream-sync]
|
||||
|
||||
jobs:
|
||||
auto-merge:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event.workflow_run.conclusion == 'success'
|
||||
steps:
|
||||
- name: Find and merge upstream-sync PR
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
// Find open PR from upstream-sync branch
|
||||
const { data: prs } = await github.rest.pulls.list({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
head: `${context.repo.owner}:upstream-sync`,
|
||||
state: 'open'
|
||||
});
|
||||
|
||||
if (prs.length === 0) {
|
||||
console.log('No open upstream-sync PR found');
|
||||
return;
|
||||
}
|
||||
|
||||
const pr = prs[0];
|
||||
console.log(`Found PR #${pr.number}: ${pr.title}`);
|
||||
|
||||
// Merge the PR using rebase
|
||||
try {
|
||||
await github.rest.pulls.merge({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
pull_number: pr.number,
|
||||
merge_method: 'rebase'
|
||||
});
|
||||
console.log(`Successfully merged PR #${pr.number}`);
|
||||
} catch (error) {
|
||||
console.log(`Failed to merge: ${error.message}`);
|
||||
throw error;
|
||||
}
|
||||
|
||||
// Delete the upstream-sync branch after merge
|
||||
try {
|
||||
await github.rest.git.deleteRef({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
ref: 'heads/upstream-sync'
|
||||
});
|
||||
console.log('Deleted upstream-sync branch');
|
||||
} catch (error) {
|
||||
console.log(`Failed to delete branch: ${error.message}`);
|
||||
}
|
||||
99
.github/workflows/upstream-sync.yml
vendored
99
.github/workflows/upstream-sync.yml
vendored
@@ -1,99 +0,0 @@
|
||||
name: Upstream Sync
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 6 * * *' # Daily at 6am UTC
|
||||
workflow_dispatch: # Manual trigger
|
||||
|
||||
jobs:
|
||||
check-and-sync:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Configure git
|
||||
run: |
|
||||
git config user.name "github-actions[bot]"
|
||||
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
- name: Add upstream remote
|
||||
run: |
|
||||
git remote add syndicate https://github.com/space-syndicate/space-station-14.git
|
||||
git fetch syndicate master
|
||||
|
||||
- name: Check for upstream updates
|
||||
id: check
|
||||
run: |
|
||||
BEHIND=$(git rev-list HEAD..syndicate/master --count)
|
||||
echo "behind=$BEHIND" >> $GITHUB_OUTPUT
|
||||
if [ "$BEHIND" -gt 0 ]; then
|
||||
echo "Upstream has $BEHIND new commits"
|
||||
echo "has_updates=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "Already up to date"
|
||||
echo "has_updates=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Rebase onto upstream
|
||||
if: steps.check.outputs.has_updates == 'true'
|
||||
id: rebase
|
||||
run: |
|
||||
# Create sync branch
|
||||
git checkout -b upstream-sync
|
||||
|
||||
# Try rebase
|
||||
if git rebase syndicate/master; then
|
||||
echo "rebase_success=true" >> $GITHUB_OUTPUT
|
||||
git push -f origin upstream-sync
|
||||
else
|
||||
git rebase --abort
|
||||
echo "rebase_success=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Create PR for CI verification
|
||||
if: steps.check.outputs.has_updates == 'true' && steps.rebase.outputs.rebase_success == 'true'
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const behind = '${{ steps.check.outputs.behind }}';
|
||||
|
||||
// Check if PR already exists
|
||||
const { data: prs } = await github.rest.pulls.list({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
head: `${context.repo.owner}:upstream-sync`,
|
||||
state: 'open'
|
||||
});
|
||||
|
||||
if (prs.length > 0) {
|
||||
console.log('PR already exists, skipping creation');
|
||||
return;
|
||||
}
|
||||
|
||||
// Create PR
|
||||
await github.rest.pulls.create({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
title: `Upstream sync: ${behind} new commits from syndicate/master`,
|
||||
head: 'upstream-sync',
|
||||
base: 'master',
|
||||
body: `Automatic rebase of wylab commits onto updated syndicate/master.\n\n**${behind} new upstream commits**\n\nThis PR will be auto-merged when CI passes.`
|
||||
});
|
||||
|
||||
- name: Create issue on rebase conflict
|
||||
if: steps.check.outputs.has_updates == 'true' && steps.rebase.outputs.rebase_success == 'false'
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const behind = '${{ steps.check.outputs.behind }}';
|
||||
await github.rest.issues.create({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
title: `Upstream sync failed - ${behind} commits behind`,
|
||||
body: `Automatic rebase onto syndicate/master failed due to conflicts.\n\nManual intervention required:\n\`\`\`bash\ngit fetch syndicate\ngit rebase syndicate/master\n# resolve conflicts\ngit push --force-with-lease origin master\n\`\`\``,
|
||||
labels: ['upstream-sync', 'needs-attention']
|
||||
});
|
||||
|
||||
10
.github/workflows/validate-rgas.yml
vendored
10
.github/workflows/validate-rgas.yml
vendored
@@ -15,19 +15,19 @@ jobs:
|
||||
- uses: actions/checkout@v4.2.2
|
||||
- name: Setup Submodule
|
||||
run: git submodule update --init
|
||||
# Wylab-Secrets-Start
|
||||
# Corvax-Secrets-Start
|
||||
- name: Setup secrets
|
||||
env:
|
||||
SSH_KEY: ${{ secrets.SECRETS_PRIVATE_KEY }}
|
||||
if: ${{ env.SSH_KEY != '' }}
|
||||
run: |
|
||||
mkdir -p ~/.ssh
|
||||
mkdir ~/.ssh
|
||||
echo "${{ secrets.SECRETS_PRIVATE_KEY }}" > ~/.ssh/id_rsa
|
||||
chmod 600 ~/.ssh/id_rsa
|
||||
echo "HOST git.wylab.me" > ~/.ssh/config
|
||||
echo " StrictHostKeyChecking no" >> ~/.ssh/config
|
||||
echo "HOST *" > ~/.ssh/config
|
||||
echo "StrictHostKeyChecking no" >> ~/.ssh/config
|
||||
git -c submodule.Secrets.update=checkout submodule update --init
|
||||
# Wylab-Secrets-End
|
||||
# Corvax-Secrets-End
|
||||
- name: Pull engine updates
|
||||
uses: space-wizards/submodule-dependency@v0.1.5
|
||||
- uses: PaulRitter/yaml-schema-validator@v1
|
||||
|
||||
38
.github/workflows/validate-rsis.yml
vendored
38
.github/workflows/validate-rsis.yml
vendored
@@ -5,57 +5,35 @@ on:
|
||||
branches: [ master, staging, stable ]
|
||||
merge_group:
|
||||
pull_request:
|
||||
types: [ opened, reopened, synchronize, ready_for_review ]
|
||||
branches: [ master, staging, stable ]
|
||||
paths:
|
||||
- '**.rsi/**'
|
||||
|
||||
jobs:
|
||||
validate_rsis:
|
||||
name: Validate RSIs
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check for RSI changes
|
||||
id: check_rsi
|
||||
uses: dorny/paths-filter@v3
|
||||
with:
|
||||
filters: |
|
||||
rsi:
|
||||
- '**.rsi/**'
|
||||
|
||||
- name: Skip if no RSI changes
|
||||
if: steps.check_rsi.outputs.rsi != 'true' && github.event_name == 'pull_request'
|
||||
run: echo "No RSI files changed, skipping validation"
|
||||
|
||||
- uses: actions/checkout@v4.2.2
|
||||
if: steps.check_rsi.outputs.rsi == 'true' || github.event_name != 'pull_request'
|
||||
|
||||
- name: Setup Submodule
|
||||
if: steps.check_rsi.outputs.rsi == 'true' || github.event_name != 'pull_request'
|
||||
run: git submodule update --init
|
||||
|
||||
# Wylab-Secrets-Start
|
||||
# Corvax-Secrets-Start
|
||||
- name: Setup secrets
|
||||
env:
|
||||
SSH_KEY: ${{ secrets.SECRETS_PRIVATE_KEY }}
|
||||
if: (steps.check_rsi.outputs.rsi == 'true' || github.event_name != 'pull_request') && env.SSH_KEY != ''
|
||||
if: ${{ env.SSH_KEY != '' }}
|
||||
run: |
|
||||
mkdir -p ~/.ssh
|
||||
mkdir ~/.ssh
|
||||
echo "${{ secrets.SECRETS_PRIVATE_KEY }}" > ~/.ssh/id_rsa
|
||||
chmod 600 ~/.ssh/id_rsa
|
||||
echo "HOST git.wylab.me" > ~/.ssh/config
|
||||
echo " StrictHostKeyChecking no" >> ~/.ssh/config
|
||||
echo "HOST *" > ~/.ssh/config
|
||||
echo "StrictHostKeyChecking no" >> ~/.ssh/config
|
||||
git -c submodule.Secrets.update=checkout submodule update --init
|
||||
# Wylab-Secrets-End
|
||||
|
||||
# Corvax-Secrets-End
|
||||
- name: Pull engine updates
|
||||
if: steps.check_rsi.outputs.rsi == 'true' || github.event_name != 'pull_request'
|
||||
uses: space-wizards/submodule-dependency@v0.1.5
|
||||
|
||||
- name: Install Python dependencies
|
||||
if: steps.check_rsi.outputs.rsi == 'true' || github.event_name != 'pull_request'
|
||||
run: |
|
||||
python3 -m pip install --user --break-system-packages pillow jsonschema
|
||||
|
||||
- name: Validate RSIs
|
||||
if: steps.check_rsi.outputs.rsi == 'true' || github.event_name != 'pull_request'
|
||||
run: |
|
||||
python3 RobustToolbox/Schemas/validate_rsis.py Resources/
|
||||
|
||||
10
.github/workflows/validate_mapfiles.yml
vendored
10
.github/workflows/validate_mapfiles.yml
vendored
@@ -15,19 +15,19 @@ jobs:
|
||||
- uses: actions/checkout@v4.2.2
|
||||
- name: Setup Submodule
|
||||
run: git submodule update --init
|
||||
# Wylab-Secrets-Start
|
||||
# Corvax-Secrets-Start
|
||||
- name: Setup secrets
|
||||
env:
|
||||
SSH_KEY: ${{ secrets.SECRETS_PRIVATE_KEY }}
|
||||
if: ${{ env.SSH_KEY != '' }}
|
||||
run: |
|
||||
mkdir -p ~/.ssh
|
||||
mkdir ~/.ssh
|
||||
echo "${{ secrets.SECRETS_PRIVATE_KEY }}" > ~/.ssh/id_rsa
|
||||
chmod 600 ~/.ssh/id_rsa
|
||||
echo "HOST git.wylab.me" > ~/.ssh/config
|
||||
echo " StrictHostKeyChecking no" >> ~/.ssh/config
|
||||
echo "HOST *" > ~/.ssh/config
|
||||
echo "StrictHostKeyChecking no" >> ~/.ssh/config
|
||||
git -c submodule.Secrets.update=checkout submodule update --init
|
||||
# Wylab-Secrets-End
|
||||
# Corvax-Secrets-End
|
||||
- name: Pull engine updates
|
||||
uses: space-wizards/submodule-dependency@v0.1.5
|
||||
- uses: PaulRitter/yaml-schema-validator@v1
|
||||
|
||||
@@ -488,7 +488,7 @@
|
||||
- !type:PopupMessage
|
||||
conditions:
|
||||
- !type:MetabolizerTypeCondition
|
||||
type: [ Animal, Vox, Vampire ] # Corvax-Wega-Edit
|
||||
type: [ Animal, Vox, Vampire, Plant ] # Corvax-Wega-Edit + Plant
|
||||
inverted: true
|
||||
type: Local
|
||||
visualType: MediumCaution
|
||||
@@ -498,12 +498,12 @@
|
||||
probability: 0.1
|
||||
conditions:
|
||||
- !type:MetabolizerTypeCondition
|
||||
type: [ Animal, Vox, Plant, Vampire ] # Corvax-Wega-Edit: added Vampire
|
||||
type: [ Animal, Vox, Vampire, Plant ] # Corvax-Wega-Edit + Plant
|
||||
inverted: true
|
||||
- !type:HealthChange
|
||||
conditions:
|
||||
- !type:MetabolizerTypeCondition
|
||||
type: [ Animal, Vox, Plant, Vampire ] # Corvax-Wega-Edit: added Vampire
|
||||
type: [ Animal, Vox, Vampire, Plant ] # Corvax-Wega-Edit + Plant
|
||||
inverted: true
|
||||
damage:
|
||||
types:
|
||||
|
||||
Reference in New Issue
Block a user