Add automatic TLS client certificate refresh support #1769
Workflow file for this run
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: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| workflow_dispatch: | |
| jobs: | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: "22" | |
| cache: "pnpm" | |
| - run: pnpm install | |
| - run: pnpm prettier --check . | |
| - run: pnpm lint | |
| - run: pnpm build | |
| test-unit: | |
| name: Unit Test (Electron ${{ matrix.electron-version }}) | |
| runs-on: ubuntu-22.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # Minimum supported version: VS Code 1.95 (Oct 2024) -> Electron 32 -> Node 20 | |
| electron-version: ["32", "latest"] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: "22" | |
| cache: "pnpm" | |
| - run: pnpm install | |
| - name: Run tests with Electron ${{ matrix.electron-version }} | |
| run: ./scripts/test-electron.sh ${{ matrix.electron-version }} | |
| env: | |
| CI: true | |
| test-integration: | |
| name: Integration Test (VS Code ${{ matrix.vscode-version }}) | |
| runs-on: ubuntu-22.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| vscode-version: ["1.95.0", "stable"] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: "22" | |
| cache: "pnpm" | |
| - run: pnpm install | |
| - run: pnpm build | |
| - name: Run integration tests on VS Code ${{ matrix.vscode-version }} | |
| run: xvfb-run -a pnpm test:integration --label "VS Code ${{ matrix.vscode-version }}" | |
| package: | |
| name: Package | |
| runs-on: ubuntu-22.04 | |
| needs: [lint, test-unit, test-integration] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: "22" | |
| cache: "pnpm" | |
| - name: Install dependencies | |
| run: pnpm install | |
| - name: Get version from package.json | |
| id: version | |
| run: | | |
| VERSION=$(node -e "console.log(require('./package.json').version)") | |
| echo "version=$VERSION" >> $GITHUB_OUTPUT | |
| echo "Version: $VERSION" | |
| - name: Setup package path | |
| id: setup | |
| run: | | |
| EXTENSION_NAME=$(node -e "console.log(require('./package.json').name)") | |
| # Add commit SHA for CI builds | |
| SHORT_SHA=$(git rev-parse --short HEAD) | |
| PACKAGE_NAME="${EXTENSION_NAME}-${{ steps.version.outputs.version }}-${SHORT_SHA}.vsix" | |
| echo "packageName=$PACKAGE_NAME" >> $GITHUB_OUTPUT | |
| - name: Package extension | |
| run: pnpm vsce package --no-dependencies --out "${{ steps.setup.outputs.packageName }}" | |
| - name: Upload artifact (PR) | |
| if: github.event_name == 'pull_request' | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: extension-pr-${{ github.event.pull_request.number }} | |
| path: ${{ steps.setup.outputs.packageName }} | |
| if-no-files-found: error | |
| retention-days: 7 | |
| - name: Upload artifact (main) | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: extension-main-${{ github.sha }} | |
| path: ${{ steps.setup.outputs.packageName }} | |
| if-no-files-found: error |