v0.2.1 #11
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: Release | |
| on: | |
| release: | |
| types: | |
| - published | |
| permissions: | |
| contents: write | |
| jobs: | |
| build: | |
| name: Build Binaries | |
| uses: bennypowers/go-release-workflows/.github/workflows/build-binaries.yml@main | |
| with: | |
| binary-name: asimonim | |
| release-tag: ${{ github.event.release.tag_name }} | |
| npm: | |
| needs: build | |
| uses: bennypowers/go-release-workflows/.github/workflows/npm-publish.yml@main | |
| with: | |
| binary-name: asimonim | |
| npm-package-name: "@pwrs/asimonim" | |
| release-tag: ${{ github.event.release.tag_name }} | |
| pre-main-publish-script: 'cp ../README.md . && node ../scripts/update-platform-package-versions.js' | |
| secrets: | |
| npm-token: ${{ secrets.NPM_TOKEN }} | |
| build-vscode: | |
| name: Build VSCode Extension | |
| runs-on: ubuntu-latest | |
| needs: [build] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Download binaries from release | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| mkdir -p extensions/vscode/dist/bin | |
| gh release download ${{ github.event.release.tag_name }} \ | |
| --pattern "asimonim-*" \ | |
| --dir extensions/vscode/dist/bin | |
| - name: Make binaries executable | |
| run: chmod +x extensions/vscode/dist/bin/asimonim-* | |
| - name: List downloaded binaries | |
| run: ls -lh extensions/vscode/dist/bin/ | |
| - name: Build VSCode extension | |
| working-directory: extensions/vscode | |
| run: | | |
| npm install | |
| npm run build | |
| - name: Upload VSCode extension to release | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| for vsix in extensions/vscode/*.vsix; do | |
| name=$(basename "$vsix") | |
| if gh release view ${{ github.event.release.tag_name }} --json assets --jq ".assets[].name" | grep -qx "$name"; then | |
| echo "Asset $name already exists, skipping" | |
| else | |
| gh release upload ${{ github.event.release.tag_name }} "$vsix" | |
| fi | |
| done | |
| publish-vscode: | |
| name: Publish to VSCode Marketplace | |
| runs-on: ubuntu-latest | |
| needs: [build-vscode] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Download VSCode extension from release | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| gh release download ${{ github.event.release.tag_name }} \ | |
| --pattern "*.vsix" \ | |
| --dir . | |
| - name: Publish to VSCode Marketplace | |
| env: | |
| VSCE_PAT: ${{ secrets.VSCE_PAT }} | |
| run: | | |
| npx @vscode/vsce publish --skip-duplicate --packagePath ./*.vsix | |
| publish-zed: | |
| name: Publish to Zed Extensions | |
| needs: [build] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Get extension version | |
| id: version | |
| run: | | |
| VERSION=$(grep '^version = ' extensions/zed/extension.toml | cut -d'"' -f2) | |
| echo "version=$VERSION" >> "$GITHUB_OUTPUT" | |
| echo "Extension version: $VERSION" | |
| - name: Checkout zed-extensions fork | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: bennypowers/zed-extensions | |
| path: zed-extensions | |
| token: ${{ secrets.ZED_COMMITTER_TOKEN }} | |
| - name: Sync fork with upstream | |
| working-directory: zed-extensions | |
| run: | | |
| git config user.name "Benny Powers" | |
| git config user.email "web@bennypowers.com" | |
| # Add upstream remote and sync | |
| git remote set-url upstream https://github.com/zed-industries/extensions.git 2>/dev/null || \ | |
| git remote add upstream https://github.com/zed-industries/extensions.git | |
| git fetch upstream | |
| git checkout main | |
| git reset --hard upstream/main | |
| git push origin main --force | |
| - name: Update Zed Extension | |
| id: update-zed | |
| working-directory: zed-extensions | |
| run: | | |
| # Point submodule to asimonim (upstream may still reference old dtls repo) | |
| git config --file .gitmodules submodule.extensions/design-tokens.url https://github.com/${{ github.repository }}.git | |
| git submodule sync extensions/design-tokens | |
| git submodule update --init extensions/design-tokens | |
| # Update submodule to latest release tag | |
| cd extensions/design-tokens | |
| git fetch origin --tags | |
| git checkout ${{ github.event.release.tag_name }} | |
| cd ../.. | |
| # Update version in extensions.toml for design-tokens section only | |
| sed -i '/^\[design-tokens\]/,/^\[/ s/^version = .*/version = "${{ steps.version.outputs.version }}"/' extensions.toml | |
| git add extensions/design-tokens extensions.toml .gitmodules | |
| if git diff --staged --quiet; then | |
| echo "No changes to commit — submodule already at this version" | |
| echo "has_changes=false" >> "$GITHUB_OUTPUT" | |
| else | |
| echo "has_changes=true" >> "$GITHUB_OUTPUT" | |
| BRANCH="update-design-tokens-${{ steps.version.outputs.version }}" | |
| git checkout -B "$BRANCH" | |
| git commit -m "Update design-tokens to v${{ steps.version.outputs.version }}" | |
| git push -f -u origin "$BRANCH" | |
| fi | |
| - name: Create Pull Request | |
| if: steps.update-zed.outputs.has_changes == 'true' | |
| working-directory: zed-extensions | |
| env: | |
| GH_TOKEN: ${{ secrets.ZED_COMMITTER_TOKEN }} | |
| run: | | |
| BRANCH="update-design-tokens-${{ steps.version.outputs.version }}" | |
| # Check if PR already exists | |
| existing_pr=$(gh pr list --repo zed-industries/extensions --head "bennypowers:$BRANCH" --json number --jq '.[0].number') | |
| if [ -n "$existing_pr" ]; then | |
| echo "PR #$existing_pr already exists for branch $BRANCH" | |
| exit 0 | |
| fi | |
| gh pr create \ | |
| --repo zed-industries/extensions \ | |
| --title "Update design-tokens to v${{ steps.version.outputs.version }}" \ | |
| --body "Updates design-tokens extension to [version ${{ steps.version.outputs.version }}](https://github.com/${{ github.repository }}/releases/tag/v${{ steps.version.outputs.version }})." |