76 lines
3.2 KiB
YAML
76 lines
3.2 KiB
YAML
on:
|
|
release:
|
|
types: [published]
|
|
jobs:
|
|
build_and_publish:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout branch from release
|
|
uses: actions/checkout@v4
|
|
with:
|
|
ref: ${{ github.event.release.target_commitish }}
|
|
fetch-depth: 0
|
|
- name: GitHub Tag Name example
|
|
run: |
|
|
echo "Tag name from GITHUB_REF_NAME: $GITHUB_REF_NAME"
|
|
echo "Tag name from github.ref_name: ${{ github.ref_name }}"
|
|
- name: Install NodeJS
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 20
|
|
- name: Install NPM Packages
|
|
run: |
|
|
npm i
|
|
cd ./client
|
|
npm i
|
|
cd ..
|
|
- name: Install VSCE
|
|
run: npm -g i @vscode/vsce
|
|
- name: Build Package Files
|
|
run: npm run package
|
|
- name: Update package.json Version
|
|
run: npm version ${{ github.ref_name }} --no-git-tag-version --allow-same-version
|
|
- name: Commit and Push Changes
|
|
run: |
|
|
git config user.name "${{ vars.USERNAME_GIT }}"
|
|
git config user.email "${{ vars.EMAIL_GIT }}"
|
|
git add package.json
|
|
git commit -m "Update version to ${{ github.ref_name }}" || echo "No changes to commit."
|
|
|
|
# Get current branch; if detached, resolve to a remote branch that contains this commit
|
|
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
|
|
if [[ "$BRANCH" == "HEAD" || -z "$BRANCH" ]]; then
|
|
# If target_commitish is a branch, use it; if it's a SHA, find a branch that contains it
|
|
CANDIDATE='${{ github.event.release.target_commitish }}'
|
|
if [[ "$CANDIDATE" =~ ^[0-9a-f]{40}$ ]]; then
|
|
BRANCH="$(git branch -r --contains "$GITHUB_SHA" | sed -n 's|.*origin/||p' | head -n1)"
|
|
else
|
|
BRANCH="$CANDIDATE"
|
|
fi
|
|
fi
|
|
|
|
if [[ -z "$BRANCH" ]]; then
|
|
echo "Could not determine branch for push."; git branch -a; exit 1
|
|
fi
|
|
|
|
git push origin HEAD:refs/heads/$BRANCH
|
|
- name: Publish to Visual Studio Marketplace (Pre-Release)
|
|
if: ${{ github.event.release.prerelease }}
|
|
run: vsce publish --pre-release
|
|
env:
|
|
VSCE_PAT: ${{ secrets.VSCODE_MARKETPALCE }}
|
|
- name: Publish to Visual Studio Marketplace (Stable)
|
|
if: ${{ !github.event.release.prerelease }}
|
|
run: vsce publish
|
|
env:
|
|
VSCE_PAT: ${{ secrets.VSCODE_MARKETPALCE }}
|
|
- name: Pack Extension for Release
|
|
run: vsce pack
|
|
- name: Upload VSIX to Release
|
|
uses: softprops/action-gh-release@v1
|
|
with:
|
|
files: "nx-post-support-*.vsix"
|
|
# generate_release_notes: true # Automatische Release Notes
|
|
# draft: false # N
|
|
# prerelease: false
|