Skip to content

fix: try fix ci

fix: try fix ci #187

Workflow file for this run

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.