diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f53e8cd..6b148bf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup .NET uses: actions/setup-dotnet@v3 with: @@ -25,16 +25,21 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup .NET uses: actions/setup-dotnet@v3 with: dotnet-version: 8.0.x - name: Build - run: dotnet build + run: dotnet build --no-incremental - name: Test - run: dotnet test --no-build --verbosity normal - + run: dotnet test --no-build --verbosity normal --logger trx --results-directory "TestResults" + - name: Upload test results + uses: actions/upload-artifact@v3 + with: + name: dotnet-results + path: TestResults + if: ${{ always() }} pack: runs-on: ubuntu-latest needs: @@ -43,7 +48,7 @@ jobs: if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')) steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup .NET uses: actions/setup-dotnet@v3 with: diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 0000000..f7702e2 --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,52 @@ +name: "CodeQL" + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + types: + - opened + - synchronize + - reopened + - ready_for_review + schedule: + # Run every week, at a randomly picked time and day + - cron: '16 23 * * 4' + +jobs: + analyze: + name: Analyze + # Avoid running for Draft pull requests + if: github.event.pull_request.draft == false + runs-on: 'ubuntu-latest' + timeout-minutes: 360 + permissions: + security-events: write + actions: read + contents: read + + strategy: + fail-fast: false + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Initialize CodeQL + uses: github/codeql-action/init@v3 + with: + languages: 'csharp' + + - name: Setup .NET + uses: actions/setup-dotnet@v3 + with: + dotnet-version: 8.0.x + + - name: Build + run: dotnet build + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 + with: + category: "/language:csharp" diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml new file mode 100644 index 0000000..c429f90 --- /dev/null +++ b/.github/workflows/labels.yml @@ -0,0 +1,20 @@ +name: Check PR Labels + +on: + pull_request: + types: + - opened + - synchronize + - reopened + - labeled + - unlabeled + +jobs: + check: + runs-on: ubuntu-latest + steps: + - name: Check for "do not merge" label + if: contains(github.event.pull_request.labels.*.name, 'do not merge') + run: | + echo "This PR should not be merged." + exit 1