Skip to content

Merge pull request #151 from ActiveMemory/dependabot/npm_and_yarn/edi… #865

Merge pull request #151 from ActiveMemory/dependabot/npm_and_yarn/edi…

Merge pull request #151 from ActiveMemory/dependabot/npm_and_yarn/edi… #865

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: '1.26'
- name: Build
run: CGO_ENABLED=0 go build ./...
- name: Test
run: CGO_ENABLED=0 go test -v ./...
env:
CTX_SKIP_PATH_CHECK: "1"
- name: Vet
run: CGO_ENABLED=0 go vet ./...
dco:
name: DCO
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Get PR commits
id: get-pr-commits
uses: tim-actions/get-pr-commits@master
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Check DCO sign-off
uses: tim-actions/dco@master
with:
commits: ${{ steps.get-pr-commits.outputs.commits }}
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: '1.26'
- name: Run golangci-lint
uses: golangci/golangci-lint-action@v9
with:
version: v2.11.4
args: --timeout=5m
typecheck-opencode-plugin:
name: Typecheck OpenCode plugin
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Set up Node
uses: actions/setup-node@v7
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: tools/typecheck/opencode/package-lock.json
- name: Install dependencies
working-directory: tools/typecheck/opencode
run: npm ci
- name: Type-check embedded plugin
working-directory: tools/typecheck/opencode
run: npx tsc --noEmit
vscode-extension:
name: VS Code extension build + typecheck
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Set up Node
uses: actions/setup-node@v7
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: editors/vscode/package-lock.json
- name: Install dependencies
working-directory: editors/vscode
run: npm ci
- name: Bundle (esbuild)
working-directory: editors/vscode
run: npm run build
- name: Type-check (production + tests)
working-directory: editors/vscode
run: npx tsc --noEmit -p tsconfig.ci.json
- name: Lint (eslint)
working-directory: editors/vscode
run: npm run lint
- name: Test (vitest)
working-directory: editors/vscode
run: npm test
- name: Package dry-run (vsce)
working-directory: editors/vscode
run: npx vsce package --no-dependencies --out /tmp/ctx-extension.vsix
shellcheck:
name: ShellCheck (embedded *.sh)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Install shellcheck
run: sudo apt-get update && sudo apt-get install -y shellcheck
- name: Run shellcheck
run: ./hack/lint-shellcheck.sh
powershell:
name: PSScriptAnalyzer (embedded *.ps1)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Install PSScriptAnalyzer
shell: pwsh
run: |
Install-Module -Name PSScriptAnalyzer -Force -Scope CurrentUser
- name: Run PSScriptAnalyzer
run: ./hack/lint-powershell.sh