name: Public source validation on: pull_request: push: permissions: contents: read jobs: source: name: source if: ${{ gitea.event_name != 'pull_request' || gitea.event.pull_request.head.repo.full_name == gitea.repository }} runs-on: ubuntu-latest timeout-minutes: 45 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up .NET SDK uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1 with: global-json-file: global.json - name: Set up Node.js uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version: 24.18.1 cache: npm cache-dependency-path: src/Ludarium.Web/package-lock.json - name: Export reviewed public source run: node scripts/export-public-source.mjs "${RUNNER_TEMP}/ludarium-public" - name: Verify exported manifest run: cd "${RUNNER_TEMP}/ludarium-public" && node scripts/validate-public-source.mjs - name: Validate source without privileged services run: cd "${RUNNER_TEMP}/ludarium-public" && sh deploy/run-managed-validation.sh source