Merge pull request #25 from p-doom/fix-workflow-permission #3
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: Build and Release Extension | |
| on: | |
| push: | |
| tags: | |
| - 'v*' # Trigger on version tags like v1.0.0 | |
| workflow_dispatch: # Allow manual triggering | |
| permissions: | |
| contents: write | |
| packages: write | |
| jobs: | |
| build-and-release: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '18' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Install vsce | |
| run: npm install -g @vscode/vsce | |
| - name: Build extension | |
| run: npm run package | |
| - name: Package extension | |
| run: vsce package | |
| env: | |
| CROWD_CODE_API_GATEWAY_URL: ${{ secrets.CROWD_CODE_API_GATEWAY_URL }} | |
| - name: Get version from package.json | |
| id: get_version | |
| run: echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT | |
| - name: Get tag name | |
| id: get_tag | |
| run: | | |
| if [[ $GITHUB_REF == refs/tags/* ]]; then | |
| echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT | |
| else | |
| echo "tag=v${{ steps.get_version.outputs.version }}" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Create Release | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| tag_name: ${{ steps.get_tag.outputs.tag }} | |
| name: Release ${{ steps.get_tag.outputs.tag }} | |
| body: | | |
| ### Installation | |
| 1. Open VS Code/Cursor | |
| 2. Press Ctrl+Shift+P and search for "Extensions: Install from VSIX" | |
| 3. Select the downloaded file | |
| ### Changes | |
| See [CHANGELOG.md](CHANGELOG.md) for detailed changes. | |
| files: | | |
| crowd-code-${{ steps.get_version.outputs.version }}.vsix | |
| draft: false | |
| prerelease: false | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |