name: Admin Release # Releases FTStore Admin (admin/) — the operator console app. Tags are # namespaced `admin-v*`, so they match none of the other products' globs: # `v*` belongs to the app (ios-release.yml, and app-repo.json's downloadURL # resolves updates through it), `web-v*` to the admin server, `manager-v*` to # the Manager. ios-update-repo.yml's `startsWith(…, 'v')` guard skips this one # too, so app-repo.json is never stamped with an Admin version. # # There is deliberately no AltStore source for this app and no self-update # channel: FTStore Admin is sideloaded by whoever runs the server, and the whole # point of splitting it out of the Manager is that nobody else is offered it. on: push: tags: - admin-v* workflow_dispatch: permissions: contents: write jobs: build: # macOS label required: the bare `self-hosted` label also matches the org's # Linux runners, which have no xcodebuild and fail the build outright. runs-on: [self-hosted, macOS] env: DEVELOPER_DIR: /Applications/Xcode.app/Contents/Developer steps: - name: Checkout uses: actions/checkout@v5 - name: Compile FTStore Admin working-directory: admin run: | agvtool new-version -all $(git rev-parse HEAD) make mkdir upload mv packages/* upload/ - name: Extract Version id: get_version working-directory: admin run: | VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" _build/Payload/*.app/Info.plist) echo "VERSION=${VERSION}" >> $GITHUB_ENV - name: Create Release uses: softprops/action-gh-release@v3 with: name: FTStore Admin v${{ env.VERSION }} tag_name: admin-v${{ env.VERSION }} files: | admin/upload/* generate_release_notes: true fail_on_unmatched_files: true draft: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}