Skip to content

chore(release): 0.0.2-alpha.30 #41

chore(release): 0.0.2-alpha.30

chore(release): 0.0.2-alpha.30 #41

Workflow file for this run

name: Create Release
on:
push:
branches: [ main ]
workflow_dispatch:
permissions:
contents: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 18
- name: Install tooling
run: sudo apt-get update && sudo apt-get install -y jq zip
- name: Configure git
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
- name: Install dependencies
run: npm ci
- name: Guard: must already be alpha

Check failure on line 34 in .github/workflows/release.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/release.yml

Invalid workflow file

You have an error in your yaml syntax on line 34
run: |
set -e
CURR="$(node -p "require('./package.json').version")"
echo "$CURR" | grep -Eq '^[0-9]+\.[0-9]+\.[0-9]+-alpha\.[0-9]+$'
- name: Decide next version (bump base + bump build)
id: ver
run: |
set -e
CURR="$(node -p "require('./package.json').version")"
BASE="${CURR%%-*}"
BUILD="${CURR##*-alpha.}"
TYPE="$(npx conventional-recommended-bump -p angular -r 0 || true)"
TYPE="$(echo "$TYPE" | tr -d '\r\n' | xargs)"
if [ -z "$TYPE" ]; then TYPE=patch; fi
IFS='.' read -r MA MI PA <<< "$BASE"
case "$TYPE" in
major) MA=$((MA+1)); MI=0; PA=0 ;;
minor) MI=$((MI+1)); PA=0 ;;
patch|*) PA=$((PA+1)) ;;
esac
NEXT_BUILD=$((BUILD+1))
NEXT_BASE="${MA}.${MI}.${PA}"
NEXT="${NEXT_BASE}-alpha.${NEXT_BUILD}"
echo "next=$NEXT" >> "$GITHUB_OUTPUT"
echo "next_base=$NEXT_BASE" >> "$GITHUB_OUTPUT"
echo "next_build=$NEXT_BUILD" >> "$GITHUB_OUTPUT"
- name: Version bump (exact)
run: |
set -e
npx standard-version --release-as "${{ steps.ver.outputs.next }}"
git push --follow-tags origin HEAD:main
- name: Read version
id: v
run: echo "VERSION=$(node -p \"require('./package.json').version\")" >> "$GITHUB_OUTPUT"
- name: Build manifests (latest + pinned)
run: |
set -e
VERSION="${{ steps.v.outputs.VERSION }}"
REPO="https://github.com/${GITHUB_REPOSITORY}"
ZIP="sr3e-${VERSION}.zip"
MANIFEST_PINNED="${REPO}/releases/download/v${VERSION}/system.json"
MANIFEST_LATEST="${REPO}/releases/latest/download/system.json"
DOWNLOAD_URL="${REPO}/releases/download/v${VERSION}/${ZIP}"
jq --arg ver "$VERSION" --arg manifest "$MANIFEST_LATEST" --arg download "$DOWNLOAD_URL" \
'.version=$ver | .manifest=$manifest | .download=$download' \
system.json > system.latest.json
jq --arg ver "$VERSION" --arg manifest "$MANIFEST_PINNED" --arg download "$DOWNLOAD_URL" \
'.version=$ver | .manifest=$manifest | .download=$download' \
system.json > system.pinned.json
- name: Build
run: npm run build
- name: Create package (players only)
run: |
set -e
VERSION="${{ steps.v.outputs.VERSION }}"
ROOT="package/sr3e"
mkdir -p "$ROOT"
cp system.pinned.json "$ROOT/system.json"
cp -r build "$ROOT/"
cp -r lang "$ROOT/"
[ -d themes ] && cp -r themes "$ROOT/"
[ -d textures ] && cp -r textures "$ROOT/"
[ -d fonts ] && cp -r fonts "$ROOT/"
[ -d styles ] && cp -r styles "$ROOT/"
[ -d licences ] && cp -r licences "$ROOT/"
[ -d licenses ] && cp -r licenses "$ROOT/"
[ -f README.md ] && cp README.md "$ROOT/"
(cd package && zip -r "../sr3e-${VERSION}.zip" "sr3e")
cp system.latest.json system.json
- name: Write release body + summary
run: |
VERSION="${{ steps.v.outputs.VERSION }}"
{
echo "Install/Update manifest (latest channel): https://github.com/${GITHUB_REPOSITORY}/releases/latest/download/system.json"
echo "Pinned manifest for this version: https://github.com/${GITHUB_REPOSITORY}/releases/download/v${VERSION}/system.json"
} > RELEASE_BODY.md
{
echo "### Release v${VERSION}"
echo "- Latest: https://github.com/${GITHUB_REPOSITORY}/releases/latest/download/system.json"
echo "- Pinned: https://github.com/${GITHUB_REPOSITORY}/releases/download/v${VERSION}/system.json"
echo "- Zip: https://github.com/${GITHUB_REPOSITORY}/releases/download/v${VERSION}/sr3e-${VERSION}.zip"
} >> "$GITHUB_STEP_SUMMARY"
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: v${{ steps.v.outputs.VERSION }}
name: v${{ steps.v.outputs.VERSION }}
body_path: RELEASE_BODY.md
files: |
sr3e-${{ steps.v.outputs.VERSION }}.zip
system.json
system.pinned.json
prerelease: true
make_latest: true
fail_on_unmatched_files: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}