name: "release" on: push: tags: - 'v*' permissions: contents: write # Needed to write to GitHub draft release jobs: # Ensure version numbers in various places match up ensure-same-version: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: install dependencies run: | pip install toml - name: Run check run: | python3 scripts/check_version_numbers.py --release ${{github.ref_name}} build: needs: ensure-same-version strategy: fail-fast: false matrix: platform: [ubuntu-22.04, windows-latest] runs-on: ${{ matrix.platform }} steps: - uses: actions/checkout@v4 - name: setup node uses: actions/setup-node@v4 with: node-version: 16 - name: install Rust stable uses: dtolnay/rust-toolchain@stable with: toolchain: stable - name: install dependencies (ubuntu only) if: matrix.platform == 'ubuntu-22.04' run: | sudo apt-get update sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf - uses: Swatinem/rust-cache@v2 # Cache Rust build artifacts with: workspaces: | src-tauri - name: install app dependencies and build it env: TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} run: | npm clean-install cd src-vue && npm clean-install && cd .. npm run tauri build - uses: tauri-apps/tauri-action@v0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} - name: upload build artifact uses: actions/upload-artifact@v4 with: path: | src-tauri/target/release/bundle/appimage/*AppImage* src-tauri/target/release/bundle/msi/*msi* src-tauri/target/release/flightcore.pdb - name: Install sentry-cli (Windows only) if: matrix.platform == 'windows-latest' run: | curl --location --output sentry-cli.exe "https://release-registry.services.sentry.io/apps/sentry-cli/latest?response=download&arch=x86_64&platform=Windows&package=sentry-cli" - name: Run sentry-cli to upload pdb (Windows only) if: matrix.platform == 'windows-latest' env: SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} SENTRY_ORG: northstar-kv SENTRY_PROJECT: flightcore run: | ./sentry-cli.exe upload-dif --wait src-tauri/target/release/flightcore.pdb - name: Release uses: softprops/action-gh-release@v1 with: draft: true files: | src-tauri/target/release/bundle/appimage/*AppImage* src-tauri/target/release/bundle/msi/*msi* create-release-file: needs: build runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - uses: actions/download-artifact@v3 - name: Create release file run: | python3 scripts/create-release-file.py --version ${{github.ref_name}} - name: upload release file uses: softprops/action-gh-release@v1 with: draft: true files: | latest-release.json