Skip to content

build

build #11

Workflow file for this run

name: 'build'
on:
workflow_dispatch:
jobs:
publish-tauri:
permissions:
contents: write
strategy:
fail-fast: false
matrix:
platform: [macos-latest, ubuntu-20.04, windows-latest]
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: setup node
uses: actions/setup-node@v4
with:
node-version: 20
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-20.04'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
- name: Install dependencies
run: npm install
- name: Build
if: matrix.platform == 'ubuntu-20.04'
run: |
npm run build
cp -r dist DwarfStellariumGoto
echo "python3 -m http.server" > DwarfStellariumGoto/start_server.bat
zip -r DwarfStellariumGoto.zip DwarfStellariumGoto
- name: Get version number from package.json
id: get_version
run: echo "::set-output name=version::$(node -e 'console.log(require("./package.json").version)')"
- name: Create artifact DwarfStellariumGoto
uses: actions/upload-artifact@v4
with:
name: DwarfStellariumGoto-${{ steps.get_version.outputs.version }}
path: DwarfStellariumGoto.zip
- name: install frontend dependencies
run: npm install
- uses: tauri-apps/tauri-action@v0
id: tauri_release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tagName: app-v${{ steps.get_version.outputs.version }}
releaseName: 'v${{ steps.get_version.outputs.version }}-DesktopAPP'
releaseBody: 'See the assets to download this version and install.'
releaseDraft: false
prerelease: false
- name: Release with ncipollo/release-action
if: matrix.platform == 'ubuntu-20.04'
id: release
uses: ncipollo/release-action@v1
with:
artifacts: DwarfStellariumGoto.zip
token: ${{ secrets.GITHUB_TOKEN }}
generateReleaseNotes: true
skipIfReleaseExists: true
tag: v${{ steps.get_version.outputs.version }}
# Extract app name from tag
- name: Extract app name
if: matrix.platform == 'ubuntu-20.04'
run: |
tag=$(echo "${{ steps.tauri_release.outputs.tag_name }}" | sed 's/^app-//')
app_name=$(echo "$tag" | sed 's/-DesktopAPP//')
echo "::set-output name=app_name::$app_name"
# Create updater.json
- name: Create updater.json
if: matrix.platform == 'ubuntu-20.04'
run: |
current_date=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
app_name=${{ steps.extract_app_name.outputs.app_name }}
echo '{
"version": "${{ steps.get_version.outputs.version }}",
"notes": "See release notes for details.",
"pub_date": "'"$current_date"'",
"platforms": {
"linux-x86_64": {
"signature": "'"$content_of_linux_signature"'",
"url": "https://github.com/${{ github.repository }}/releases/download/'"$tag"'/'"$app_name"'-x86_64.AppImage.tar.gz"
},
"darwin-x86_64": {
"signature": "'"$content_of_darwin_signature"'",
"url": "https://github.com/${{ github.repository }}/releases/download/'"$tag"'/'"$app_name"'-x86_64.app.tar.gz"
},
"windows-x86_64": {
"signature": "'"$content_of_windows_signature"'",
"url": "https://github.com/${{ github.repository }}/releases/download/'"$tag"'/'"$app_name"'-x86_64-setup.nsis.zip"
}
}
}' > update.json
- name: Update Gist
if: matrix.platform == 'ubuntu-20.04'
run: |
# Extract content of updater.json
UPDATER_JSON_CONTENT=$(cat update.json)
# Get Gist ID from secrets
GIST_ID="${{ secrets.GIST_ID }}"
# Make a PATCH request to update the gist
curl -L \
-X PATCH \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/gists/$GIST_ID \
-d "{\"files\":{\"update.json\":{\"content\":\"$UPDATER_JSON_CONTENT\"}}}"