Skip to content

Enrich dependency alerts with Copilot compatibility assessments #184

Enrich dependency alerts with Copilot compatibility assessments

Enrich dependency alerts with Copilot compatibility assessments #184

Workflow file for this run

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