CatStation/.github/workflows/publish.yml
2026-09-30 16:43:04 +07:00

123 lines
4.4 KiB
YAML

name: Publish
concurrency:
group: publish
cancel-in-progress: true
on:
workflow_dispatch:
schedule:
- cron: '0 1 * * *'
jobs:
build:
runs-on: ubuntu-latest
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
- uses: actions/checkout@v7
with:
submodules: 'recursive'
fetch-depth: 0
filter: blob:none
# Corvax-Secrets-Start
- name: Setup secrets
env:
SSH_KEY: ${{ secrets.SECRETS_PRIVATE_KEY }}
if: ${{ env.SSH_KEY != '' }}
run: |
mkdir -p ~/.ssh
echo "${{ secrets.SECRETS_PRIVATE_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
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@v5
with:
dotnet-version: 10.0.x
- name: Get Engine Tag
run: |
cd RobustToolbox
git fetch --depth=1
- name: Install dependencies
run: dotnet restore
# - name: Update changelog
# run: |
# dotnet tool install --global SpaceWizards.ChangelogTool --version 1.0.7
# ss14-changelog update -d Resources/Changelog
# env:
# REPO: ${{ github.repository }}
# BRANCH: stable
# CHANGELOG_REPO_PATH: Resources/Changelog
# EXTRA_CATEGORIES: Admin,Maps,Rules
# GITHUB_TOKEN: ${{ secrets.CL_ACCESS_TOKEN }}
# - name: Commit and push changelog changes
# id: changelog
# run: |
# git config user.name "Space-Wizards-Bot"
# git config user.email "support@spacestation14.com"
# if [ -n "$(git status --porcelain Resources/Changelog)" ]; then
# git add Resources/Changelog
# git commit -m "Update changelog"
# git remote set-url origin "https://x-access-token:${CL_ACCESS_TOKEN}@github.com/${GITHUB_REPOSITORY}.git"
# git push origin "HEAD:${GITHUB_REF_NAME}"
# echo "committed=true" >> "$GITHUB_OUTPUT"
# fi
# env:
# CL_ACCESS_TOKEN: ${{ secrets.CL_ACCESS_TOKEN }}
# - name: Create PR from stable to master
# if: steps.changelog.outputs.committed == 'true'
# env:
# GH_TOKEN: ${{ secrets.CL_ACCESS_TOKEN }}
# run: |
# if [ -z "$(gh pr list --repo "$GITHUB_REPOSITORY" --head stable --base master --state open --json number --jq '.[].number')" ]; then
# gh pr create --repo "$GITHUB_REPOSITORY" --base master --head stable --title "Update changelog" --body "Sync from release to master."
# fi
- name: Build Packaging
run: dotnet build Content.Packaging --configuration Release --no-restore /m
- 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
- name: Package client
run: dotnet run --project Content.Packaging client --no-wipe-release
- name: Publish version
run: Tools/publish_multi_request.py
env:
PUBLISH_TOKEN: ${{ secrets.PUBLISH_TOKEN }}
GITHUB_REPOSITORY: ${{ vars.GITHUB_REPOSITORY }}
FORK_ID: ${{ vars.FORK_ID }}
# - name: Publish changelog (Discord)
# run: Tools/actions_changelogs_since_last_run.py
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# DISCORD_WEBHOOK_URL: ${{ secrets.CHANGELOG_DISCORD_WEBHOOK }}
# - name: Publish changelog (RSS)
# continue-on-error: true
# run: Tools/actions_changelog_rss.py
# env:
# CHANGELOG_RSS_KEY: ${{ secrets.CHANGELOG_RSS_KEY }}