vscode-extension-workflows - Reusable CI/CD Workflows

November 10, 2025 ยท View on GitHub

OpenSSF Scorecard

vscode-extension-workflows - Reusable CI/CD Workflows

This repository provides reusable GitHub Actions workflows for building, testing, and packaging TypeScript VS Code extensions across multiple platforms. The repository itself serves as a self-testing infrastructure to validate the workflows.

Purpose

  • Reusable GitHub Actions workflows for TypeScript VS Code extensions
  • Self-test infrastructure to validate workflow functionality

Using the Reusable Workflow

Quick Start

For detailed usage instructions, see WORKFLOWS.md.

Self-Test Infrastructure Development

If you're contributing to or testing the workflows themselves, use these commands:

# Install dependencies
npm install

# Build the project
npm run build

# Run tests with coverage
npm test

# Lint code
npm run lint

# Clean build artifacts
npm run clean

# Package as VSIX
npm run package

# Update TPIP license tracking
npm run tpip:update

# Generate TPIP license report
npm run tpip

๐Ÿ“ Repository Structure

Reusable Workflows

.github/
โ”œโ”€โ”€ workflows/
โ”‚   โ”œโ”€โ”€ build-and-verify.yml      # Main reusable workflow
โ”‚   โ””โ”€โ”€ self-test.yml             # Self-testing workflow
โ”œโ”€โ”€ platform-matrix.json          # Example platform configuration
โ””โ”€โ”€ WORKFLOWS.md                  # Comprehensive workflow documentation

Self-Test Infrastructure

.
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ index.ts                      # Test extension entry point
โ”œโ”€โ”€ dist/                             # Build output
โ”œโ”€โ”€ scripts/
โ”‚   โ”œโ”€โ”€ update-tpip.ts                # TPIP license tracking updater
โ”‚   โ””โ”€โ”€ tpip-reporter.ts              # TPIP license report generator
โ”œโ”€โ”€ docs/
โ”‚   โ”œโ”€โ”€ third-party-licenses.json     # TPIP license database
โ”‚   โ””โ”€โ”€ tpip-header.md                # TPIP report header template
โ”œโ”€โ”€ package.json                      # Self-test project configuration
โ”œโ”€โ”€ tsconfig.json                     # TypeScript configuration
โ”œโ”€โ”€ jest.config.js                    # Jest testing configuration
โ””โ”€โ”€ tpip.md                           # Generated TPIP license report

TPIP License Compliance

The self-test infrastructure includes TPIP (Third-Party Intellectual Property) license tracking for testing purposes:

  • scripts/update-tpip.ts - License tracking updater
  • scripts/tpip-reporter.ts - Report generator
  • docs/third-party-licenses.json - License database

Contributing

Contributions are welcome! This repository serves dual purposes:

  1. Workflow Improvements: Enhance the reusable build-and-verify.yml workflow
  2. Testing Infrastructure: Improve the self-test setup to validate workflow features

Resources

๐Ÿ“„ License

This project is licensed under the MIT License, see LICENSE.