fix: try fix ci #187
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: | |
push: | |
branches: | |
- '**' | |
jobs: | |
release: | |
permissions: | |
id-token: write | |
contents: write | |
if: "contains(github.event.head_commit.message, 'chore: release') || (github.ref == 'refs/heads/beta')" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Install pnpm | |
uses: pnpm/action-setup@v3 | |
- name: Use Node.js v20 | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
registry-url: https://registry.npmjs.org/ | |
cache: pnpm | |
- run: pnpm install | |
- name: Lint | |
run: pnpm run lint | |
- name: Test | |
run: pnpm run test | |
- name: Set Preview Version for Beta Branch | |
if: "github.ref == 'refs/heads/beta'" | |
run: | | |
# get current version from package.json | |
CURRENT_VERSION=$(node -p "require('./package.json').version") | |
echo "Current version from package.json: $CURRENT_VERSION" | |
# get latest tag from git (if any) | |
LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "") | |
if [ -n "$LATEST_TAG" ]; then | |
# remove v prefix (if any) | |
LATEST_TAG=${LATEST_TAG#aide-v} | |
echo "Latest git tag version: $LATEST_TAG" | |
# compare version, take the larger one | |
if [ "$(printf '%s\n' "$LATEST_TAG" "$CURRENT_VERSION" | sort -V | tail -n1)" = "$LATEST_TAG" ]; then | |
CURRENT_VERSION=$LATEST_TAG | |
echo "Using git tag version as it's newer: $CURRENT_VERSION" | |
fi | |
fi | |
# parse version components | |
MAJOR=$(echo $CURRENT_VERSION | cut -d. -f1) | |
MINOR=$(echo $CURRENT_VERSION | cut -d. -f2) | |
PATCH=$(echo $CURRENT_VERSION | cut -d. -f3) | |
# check if MINOR is even | |
if [ $((MINOR % 2)) -eq 0 ]; then | |
# if it is even, add 1 to make it odd (preview version) | |
NEW_MINOR=$((MINOR + 1)) | |
# reset PATCH to 0 | |
PATCH=0 | |
else | |
# if it is odd, keep it, but add 1 to PATCH | |
NEW_MINOR=$MINOR | |
PATCH=$((PATCH + 1)) | |
fi | |
# build new preview version | |
PREVIEW_VERSION="aide-v$MAJOR.$NEW_MINOR.$PATCH" | |
echo "New preview version: $PREVIEW_VERSION" | |
# update package.json | |
node -e "const fs=require('fs');const pkg=JSON.parse(fs.readFileSync('./package.json'));pkg.version='${PREVIEW_VERSION#aide-v}';fs.writeFileSync('./package.json',JSON.stringify(pkg,null,2));" | |
# create a new git tag | |
git tag "$PREVIEW_VERSION" | |
echo "Set preview version to ${PREVIEW_VERSION}" | |
- name: Publish | |
run: pnpm run publish | |
env: | |
VSCE_TOKEN: ${{secrets.VSCE_TOKEN}} | |
OVSX_TOKEN: ${{secrets.OVSX_TOKEN}} | |
IS_PREVIEW: ${{ github.ref == 'refs/heads/beta' && 'true' || 'false' }} | |
- name: Git commit and tag | |
id: commit | |
run: | | |
git config --local user.email github-actions[bot]@users.noreply.github.com | |
git config --local user.name github-actions[bot] | |
git config --global core.autocrlf true | |
git config --global core.safecrlf false | |
git add . | |
git commit -m "chore: ci build [skip ci]" -a | |
continue-on-error: true | |
- name: Git push with tags | |
uses: ad-m/github-push-action@master | |
if: ${{ steps.commit.outcome == 'success' }} | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
branch: ${{ github.ref }} | |
tags: true | |
- name: Log | |
if: ${{ steps.commit.outcome != 'success' }} | |
run: echo Nothing to commit. |