Repository navigation
Enrich dependency alerts with Copilot compatibility assessments #184
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ci | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| workflow-lint: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| - name: Lint GitHub Actions workflows | |
| uses: rhysd/actionlint@914e7df21a07ef503a81201c76d2b11c789d3fca # v1.7.12 | |
| - name: Test dependency monitor | |
| run: node --test .github/scripts/critical-dependencies.test.js .github/scripts/critical-dependency-assessment.test.js | |
| dependency-review: | |
| if: github.event_name == 'pull_request' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| - name: Reject newly vulnerable dependencies | |
| uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0 | |
| site-check: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| - name: Build and validate local site links | |
| run: python3 site/build.py | |
| - name: Check JavaScript syntax | |
| run: node --check site/app.js | |
| test: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-15, windows-latest] | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| - uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6 | |
| with: | |
| global-json-file: global.json | |
| cache: true | |
| cache-dependency-path: '**/packages.lock.json' | |
| - name: Restore locked dependencies | |
| run: dotnet restore --locked-mode | |
| - name: Build | |
| run: dotnet build --configuration Release --no-restore | |
| - name: Verify code style — dotnet format | |
| if: matrix.os == 'ubuntu-latest' | |
| run: dotnet format SkillView.sln --no-restore --verify-no-changes | |
| - name: Test | |
| run: dotnet test --configuration Release --no-build --verbosity normal | |
| aot-smoke: | |
| name: AOT publish smoke (${{ matrix.rid }}) | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 60 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - rid: linux-x64 | |
| os: ubuntu-latest | |
| ext: '' | |
| - rid: osx-arm64 | |
| os: macos-15 | |
| ext: '' | |
| - rid: win-x64 | |
| os: windows-latest | |
| ext: .exe | |
| - rid: win-arm64 | |
| os: windows-11-arm | |
| ext: .exe | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 | |
| - name: Install Linux AOT toolchain | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y clang zlib1g-dev | |
| - uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6 | |
| with: | |
| global-json-file: global.json | |
| cache: true | |
| cache-dependency-path: '**/packages.lock.json' | |
| - name: AOT publish (standalone) | |
| shell: bash | |
| run: | | |
| dotnet publish src/SkillView.App/SkillView.App.csproj \ | |
| -c Release -r ${{ matrix.rid }} \ | |
| -p:PublishAot=true -p:StripSymbols=true -p:RestoreLockedMode=true \ | |
| -warnaserror:IL2026 -warnaserror:IL3050 -warnaserror:IL3053 \ | |
| -o dist/app | |
| - name: AOT publish (extension) | |
| shell: bash | |
| run: | | |
| dotnet publish src/SkillView.GhExtension/SkillView.GhExtension.csproj \ | |
| -c Release -r ${{ matrix.rid }} \ | |
| -p:PublishAot=true -p:StripSymbols=true -p:RestoreLockedMode=true \ | |
| -o dist/ext | |
| - name: Smoke-test native binaries | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| test -s 'dist/app/skillview${{ matrix.ext }}' | |
| test -s 'dist/ext/gh-skillview${{ matrix.ext }}' | |
| 'dist/app/skillview${{ matrix.ext }}' --version | |
| 'dist/ext/gh-skillview${{ matrix.ext }}' --version |