name: Test Packaging on: push: branches: [ master, staging, stable ] paths: - '**.cs' - '**.csproj' - '**.sln' - '**.git**' - '**.yml' # no docs on which one of these is supposed to work, so # why not just do both - 'RobustToolbox' - 'RobustToolbox/**' merge_group: pull_request: types: [ opened, reopened, synchronize, ready_for_review ] branches: [ master, staging, stable ] paths: - '**.cs' - '**.csproj' - '**.sln' - '**.git**' - '**.yml' - 'RobustToolbox' - 'RobustToolbox/**' concurrency: group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.event.pull_request.number || github.ref }} cancel-in-progress: ${{ github.event_name != 'merge_group' }} jobs: build: name: Test Packaging if: github.actor != 'IanComradeBot' && github.event.pull_request.draft == false runs-on: ubuntu-latest steps: - name: Checkout Master uses: actions/checkout@v7 - name: Setup Submodule run: | git submodule update --init --recursive - name: Pull engine updates uses: space-wizards/submodule-dependency@v0.1.5 - name: Update Engine Submodules run: | cd RobustToolbox/ git submodule update --init --recursive # Corvax-Secrets-Start - name: Setup secrets env: SSH_KEY: ${{ secrets.SECRETS_PRIVATE_KEY }} if: ${{ env.SSH_KEY != '' }} run: | mkdir ~/.ssh echo "${{ secrets.SECRETS_PRIVATE_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa echo "HOST *" > ~/.ssh/config echo "StrictHostKeyChecking no" >> ~/.ssh/config git -c submodule.Secrets.update=checkout submodule update --init # Corvax-Secrets-End # ubuntu-latest has .NET 10 # - name: Setup .NET Core # uses: actions/setup-dotnet@v5 # with: # dotnet-version: 10.0.x - name: Install dependencies run: dotnet restore - name: Build Packaging run: dotnet build Content.Packaging --configuration Release --no-restore /m - name: Package server run: dotnet run --project Content.Packaging server --log-build --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 --log-build --no-wipe-release - uses: actions/upload-artifact@v4 with: name: binlogs path: release/*.binlog retention-days: 7