docs(changelog): record the dependency refresh in the four pending re… #126
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: vscode-release | |
| # Builds, packages, and publishes the Rocky VS Code extension when a vscode-v* | |
| # tag is pushed. Creates the GitHub Release (if it doesn't already exist), | |
| # attaches the .vsix artifact, and publishes to the VS Code Marketplace when | |
| # the VSCE_PAT secret is configured. scripts/release.sh remains as a local | |
| # fallback. | |
| on: | |
| push: | |
| tags: ["vscode-v*"] | |
| permissions: | |
| contents: write | |
| env: | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true | |
| defaults: | |
| run: | |
| working-directory: editors/vscode | |
| jobs: | |
| # Create the GitHub Release if it doesn't already exist (supports both | |
| # CI-only releases and the local scripts/release.sh workflow where the | |
| # release is created before the tag push). | |
| ensure-release: | |
| name: Ensure GitHub Release exists | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| persist-credentials: false | |
| - name: Create release if missing | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| TAG="${GITHUB_REF_NAME}" | |
| if gh release view "$TAG" --repo "$GITHUB_REPOSITORY" >/dev/null 2>&1; then | |
| echo "Release $TAG already exists (created by scripts/release.sh)" | |
| else | |
| echo "Creating release $TAG" | |
| gh release create "$TAG" \ | |
| --repo "$GITHUB_REPOSITORY" \ | |
| --generate-notes \ | |
| --latest=false \ | |
| --title "$TAG" | |
| fi | |
| build: | |
| name: Build and publish | |
| needs: ensure-release | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| cache-dependency-path: editors/vscode/package-lock.json | |
| - run: npm ci | |
| - run: npm run compile | |
| - name: Package VSIX | |
| run: npx @vscode/vsce package | |
| - name: Attach VSIX to GitHub Release | |
| uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3 | |
| with: | |
| files: editors/vscode/*.vsix | |
| - name: Publish to VS Code Marketplace | |
| env: | |
| VSCE_PAT: ${{ secrets.VSCE_PAT }} | |
| # `if: env.VSCE_PAT != ''` doesn't work — the `env` context isn't | |
| # available in step-level `if:` evaluation. Guard inline instead so | |
| # forks without the secret produce a soft no-op rather than a hard | |
| # failure (matches the pattern documented in engine-wasm-release.yml). | |
| run: | | |
| if [ -z "$VSCE_PAT" ]; then | |
| echo "VSCE_PAT not set — skipping marketplace publish (this is expected on forks)" | |
| exit 0 | |
| fi | |
| npx @vscode/vsce publish --pat "$VSCE_PAT" |