Skip to content

[DX/CI-CD]: Set up automated GitHub Actions workflow for linting and extension packagingΒ #65

Description

@prasiddhi-105

✨ Feature Summary

As the codebase grows and more contributors join, we need automated validation to ensure PR code meets quality standards and compiles cleanly into a VS Code Extension format.

🎯 Problem / Motivation

Currently, there is no automated checks or integration pipeline running when pull requests are submitted. Maintaining code quality depends entirely on manual code reviews, which can allow syntax errors, formatting inconsistencies, or broken builds to slip through unnoticed. Automating this verification process saves core maintainers time and catches integration issues immediately.

πŸ’‘ Proposed Solution

Implement a automated GitHub Actions workflow (.github/workflows/ci.yml) that triggers automatically on all push and pull_request events targeting the main branch. The workflow will perform the following steps:

  1. Check out the repository code.
  2. Set up the appropriate Node.js environment.
  3. Install project dependencies (using pnpm / npm / yarn as per the project lockfile).
  4. Run code formatting and linting checks (e.g., Prettier/ESLint).
  5. Attempt a compilation step and test packaging the extension using vsce package to ensure the final extension bundles successfully without breaking.

πŸ”„ Alternatives Considered

  • Manual Verification: Relies on maintainers pulling code locally to check builds, which slows down the review cycle.
  • Git Hooks (Husky): Runs checks locally before a commit is pushed, but can be bypassed easily by contributors and does not provide a visible status badge on the GitHub PR itself.

πŸ–ΌοΈ Mockups / Examples

Standard GitHub Actions continuous integration workflow setup:

name: CI

on:
  push:
    branches: [ main, master ]
  pull_request:
    branches: [ main, master ]

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Use Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
      # Followed by install, lint, and build/package steps

πŸ“‹ Additional Context
This will significantly improve Developer Experience (DX), ensuring that any new code contributions keep the repository green and readily packageable.

⚠️ ECSoC26 Contributors: I am participating in ECSoC26 and would like to claim this issue to work on the implementation myself. Please assign it to me!

Metadata

Metadata

Assignees

Labels

ECSoC26Required on all scored PRsECSoC26-L2Medium β€” 10 pts (auto by Sentinel)enhancementNew feature or requestgood first issueGood for newcomersgood-issueBonus +10 XP (admin only)

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions