applying package updates #670
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: github-release | |
| "on": | |
| push: | |
| tags: | |
| - '@acedatacloud/nexior_v*' | |
| - 'v*' | |
| permissions: | |
| contents: write | |
| jobs: | |
| release: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '22' | |
| cache: npm | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Build | |
| run: npm run build | |
| - name: Prepare metadata | |
| id: meta | |
| shell: bash | |
| env: | |
| # Optional override; falls back to the canonical URL shipped in the app. | |
| IOS_APP_STORE_URL_OVERRIDE: ${{ vars.IOS_APP_STORE_URL }} | |
| run: | | |
| TAG="${GITHUB_REF_NAME}" | |
| SAFE_TAG="${TAG//\//-}" | |
| if [[ "$TAG" == *"_v"* ]]; then | |
| VERSION="${TAG##*_v}" | |
| else | |
| VERSION="${TAG#v}" | |
| fi | |
| # iOS store link: prefer the repo-variable override, else the canonical | |
| # URL the app already ships with (single source of truth in mobile.ts). | |
| IOS_URL="${IOS_APP_STORE_URL_OVERRIDE:-}" | |
| if [ -z "$IOS_URL" ]; then | |
| IOS_URL=$(sed -nE "s/.*MOBILE_IOS_APP_STORE_URL *= *'([^']+)'.*/\1/p" src/constants/mobile.ts | head -n1) | |
| fi | |
| echo "tag=${TAG}" >> "$GITHUB_OUTPUT" | |
| echo "safe_tag=${SAFE_TAG}" >> "$GITHUB_OUTPUT" | |
| echo "version=${VERSION}" >> "$GITHUB_OUTPUT" | |
| echo "ios_url=${IOS_URL}" >> "$GITHUB_OUTPUT" | |
| - name: Package dist | |
| shell: bash | |
| run: | | |
| ASSET="nexior-dist-${{ steps.meta.outputs.safe_tag }}.tar.gz" | |
| tar -czf "$ASSET" dist | |
| sha256sum "$ASSET" > "${ASSET}.sha256" | |
| - name: Create GitHub Release | |
| uses: softprops/action-gh-release@v3 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN || github.token }} | |
| with: | |
| tag_name: ${{ steps.meta.outputs.tag }} | |
| name: v${{ steps.meta.outputs.version }} | |
| generate_release_notes: true | |
| # The platform installers themselves are attached by the per-platform | |
| # workflows (build-android.yaml / desktop.yml) which finish on their own | |
| # runners; this block just documents where each lives. append_body keeps | |
| # the auto-generated changelog above this table. | |
| append_body: true | |
| body: | | |
| ## 📦 Downloads | |
| | Platform | How to get it | | |
| |----------|---------------| | |
| | 🍎 **macOS** | The `.dmg` in Assets below (`x64` for Intel, `arm64` for Apple Silicon) | | |
| | 🪟 **Windows** | The `.exe` installer in Assets below | | |
| | 🤖 **Android** | The `.apk` in Assets below (sideload), or [Google Play](https://play.google.com/store/apps/details?id=com.acedatacloud.nexior) | | |
| | 📱 **iOS** | ${{ steps.meta.outputs.ios_url != '' && format('[App Store]({0})', steps.meta.outputs.ios_url) || 'TestFlight beta (coming soon)' }} | | |
| | 🌐 **Web** | The `nexior-dist-*.tar.gz` below (self-host) | | |
| > ⚠️ The desktop apps are currently an **unsigned beta**: on macOS, right-click → Open to bypass Gatekeeper; on Windows, click "Run anyway" on the SmartScreen prompt. They switch to signed builds automatically once the signing certificates are configured. | |
| files: | | |
| nexior-dist-${{ steps.meta.outputs.safe_tag }}.tar.gz | |
| nexior-dist-${{ steps.meta.outputs.safe_tag }}.tar.gz.sha256 |