Cody Recipe Widget for Code Snippet Responses #871
This file contains 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: | |
types: [opened, reopened, synchronize, ready_for_review] | |
workflow_dispatch: | |
jobs: | |
test-unit: | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version-file: .tool-versions | |
- uses: pnpm/action-setup@v2 | |
- run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT | |
shell: bash | |
id: pnpm-cache | |
- name: Cache pnpm store | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: ${{ runner.os }}-pnpm-store- | |
- run: pnpm install | |
- run: pnpm run test:unit --run | |
test-integration: | |
strategy: | |
fail-fast: false | |
matrix: | |
runner: [ubuntu-latest, windows-latest, macos-latest] | |
runs-on: ${{ matrix.runner }} | |
timeout-minutes: 15 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version-file: .tool-versions | |
- uses: pnpm/action-setup@v2 | |
- run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT | |
shell: bash | |
id: pnpm-cache | |
- name: Cache pnpm store | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: ${{ runner.os }}-pnpm-store- | |
- run: pnpm install | |
- run: xvfb-run -a pnpm -C vscode run test:integration | |
if: matrix.runner == 'ubuntu-latest' | |
- run: pnpm -C vscode run test:integration | |
if: github.ref == 'refs/heads/main' && (matrix.runner == 'windows-latest' || matrix.runner == 'macos-latest') | |
test-e2e: | |
strategy: | |
fail-fast: false | |
matrix: | |
runner: [ubuntu-latest] # TODO(sqs): enable e2e tests for Windows and macOS? | |
runs-on: ${{ matrix.runner }} | |
timeout-minutes: 15 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version-file: .tool-versions | |
- uses: pnpm/action-setup@v2 | |
- run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT | |
shell: bash | |
id: pnpm-cache | |
- name: Cache pnpm store | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: ${{ runner.os }}-pnpm-store- | |
- run: pnpm install | |
- run: xvfb-run -a pnpm -C vscode run test:e2e | |
if: matrix.runner == 'ubuntu-latest' | |
- run: pnpm -C vscode run test:e2e | |
if: matrix.runner == 'windows-latest' || matrix.runner == 'macos-latest' | |
build: | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version-file: .tool-versions | |
- uses: pnpm/action-setup@v2 | |
- run: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT | |
shell: bash | |
id: pnpm-cache | |
- name: Cache pnpm store | |
uses: actions/cache@v3 | |
with: | |
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: ${{ runner.os }}-pnpm-store- | |
- run: pnpm install | |
- run: pnpm run build | |
- run: pnpm run lint | |
- run: pnpm run format:check |