-
Notifications
You must be signed in to change notification settings - Fork 2
88 lines (76 loc) · 3.07 KB
/
copilot-setup-steps.yml
File metadata and controls
88 lines (76 loc) · 3.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
name: 'Copilot Setup Steps'
on:
# Allow manual testing through the repository's "Actions" tab
workflow_dispatch: {}
# Automatically run the setup steps when an associated workflow is changed.
push:
paths:
- '.codeql-version'
- '.github/workflows/copilot-setup-steps.yml'
- '.node-version'
- '.github/actions/setup-codeql-environment/action.yml'
- '**/codeql-pack.yml'
- '**/codeql-pack.lock.yml'
- '**/package.json'
- '**/package-lock.json'
- '**/qlpack.yml'
pull_request:
paths:
- '.codeql-version'
- '.github/workflows/copilot-setup-steps.yml'
- '.node-version'
- '.github/actions/setup-codeql-environment/action.yml'
- '**/codeql-pack.yml'
- '**/codeql-pack.lock.yml'
- '**/package.json'
- '**/package-lock.json'
- '**/qlpack.yml'
jobs:
# The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
copilot-setup-steps:
permissions:
contents: read
runs-on: ubuntu-latest
steps:
- name: Copilot Setup - Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
## TODO : fix and/or rework to avoid "token not provided" error when this workflow
## is initiated purely for use by Copilot Coding Agent (CCA) (i.e. not triggered
## by normal code change). Uncomment the `with` section or refactor approach.
#with:
# submodules: recursive
# token: ${{ secrets.QL_DEV_TOKEN }}
- name: Copilot Setup - Setup Node.js
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
cache: 'npm'
node-version-file: '.node-version'
- name: Copilot Setup - Install dependencies
run: npm ci --include=optional
- name: Copilot Setup - Setup CodeQL environment
uses: ./.github/actions/setup-codeql-environment
with:
install-language-runtimes: true
- name: Copilot Setup - Install CodeQL packs used in integration tests
run: ./server/scripts/install-packs.sh
# VS Code extension integration test prerequisites
- name: Copilot Setup - Install xvfb and VS Code dependencies
run: |
sudo apt-get update
sudo apt-get install -y xvfb libgbm1 libgtk-3-0 libxshmfence1
sudo apt-get install -y libasound2t64 || sudo apt-get install -y libasound2
- name: Copilot Setup - Build server (extension dependency)
run: npm run build -w server
- name: Copilot Setup - Bundle extension and server
working-directory: extensions/vscode
run: |
npm run bundle
npm run bundle:server
- name: Copilot Setup - Cache VS Code for integration tests
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5
with:
key: vscode-test-${{ runner.os }}-stable
path: extensions/vscode/.vscode-test
- name: Copilot Setup - Download VS Code for integration tests
working-directory: extensions/vscode
run: npm run download:vscode