Merge pull request #4 from JuliaPluto/pg/snippets #18
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: | |
| pull_request: | |
| types: [opened, synchronize, reopened] | |
| push: | |
| branches: | |
| - main | |
| tags: | |
| - 'v*.*.*' | |
| workflow_call: # Allow this workflow to be called by other workflows | |
| jobs: | |
| validate: | |
| name: Validate | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Verify package.json and package-lock.json are in sync | |
| run: | | |
| npm ci --dry-run | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-latest | |
| needs: validate | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Run type checking | |
| run: npm run check-types | |
| - name: Run linting | |
| run: npm run lint | |
| - name: Check formatting | |
| run: npm run format:check | |
| test: | |
| name: Test | |
| runs-on: ubuntu-latest | |
| needs: validate | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Run unit tests | |
| run: npm run test:unit | |
| # //TODO: figureout how to run these in CI and what actually to test there | |
| # - name: Run vscode tests | |
| # run: npm test:unit | |
| build: | |
| name: Build | |
| runs-on: ubuntu-latest | |
| needs: [validate, lint, test] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Build extension | |
| run: npm run package | |
| - name: Get VSIX filename | |
| id: vsix_file | |
| run: | | |
| VSIX_FILE=$(ls *.vsix | head -n 1) | |
| echo "filename=$VSIX_FILE" >> $GITHUB_OUTPUT | |
| echo "Built VSIX file: $VSIX_FILE" | |
| - name: Upload VSIX as artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: vsix-package | |
| path: ${{ steps.vsix_file.outputs.filename }} | |
| retention-days: 90 |