name: CI on: push: branches: [master] tags: ['v*'] pull_request: jobs: lint: runs-on: self-hosted-x86 steps: - uses: actions/checkout@v6.0.2 - uses: actions/setup-dotnet@v4 with: global-json-file: global.json - run: dotnet restore Outnumbered.slnx - name: Format check run: dotnet format Outnumbered.slnx --verify-no-changes --no-restore build: runs-on: self-hosted-x86 steps: - uses: actions/checkout@v6.0.2 - uses: actions/setup-dotnet@v4 with: global-json-file: global.json - run: dotnet restore Outnumbered.slnx - name: Build (SQLite dev config) + test run: | dotnet build Outnumbered.slnx -c Release --no-restore dotnet test Outnumbered.slnx -c Release --no-build - name: Build (Postgres-only release config) run: dotnet build Outnumbered/outnumbered.csproj -c Release -p:WithSqlite=false --no-restore release: needs: [lint, build] if: startsWith(github.ref, 'refs/tags/v') runs-on: self-hosted-x86 steps: - uses: actions/checkout@v6.0.2 - uses: actions/setup-dotnet@v4 with: global-json-file: global.json - name: Package (Postgres-only for production) run: | set -eu VERSION="${GITHUB_REF_NAME#v}" PKG="outnumbered-${VERSION}" dotnet publish Outnumbered/outnumbered.csproj -c Release -p:WithSqlite=false \ -o "${PKG}/addons/counterstrikesharp/plugins/outnumbered" cp README.md LICENSE "${PKG}/" mkdir -p dist tar -czf "dist/${PKG}.tar.gz" "${PKG}" - name: Publish Forgejo release uses: https://code.forgejo.org/actions/forgejo-release@v2 with: direction: upload url: ${{ github.server_url }} repo: ${{ github.repository }} tag: ${{ github.ref_name }} release-dir: dist token: ${{ secrets.GITHUB_TOKEN }} override: true release-notes: "Outnumbered ${{ github.ref_name }} — Postgres-only build. Extract `addons/` into /game/csgo/; see README. SQLite single-server build: compile with -p:WithSqlite=true."