|
|
|
|
@@ -10,6 +10,9 @@ on:
|
|
|
|
|
|
|
|
|
|
env:
|
|
|
|
|
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
|
|
|
|
|
CARGO_INCREMENTAL: 0
|
|
|
|
|
CARGO_NET_RETRY: 10
|
|
|
|
|
RUSTUP_MAX_RETRIES: 10
|
|
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
|
check-version:
|
|
|
|
|
@@ -37,22 +40,6 @@ jobs:
|
|
|
|
|
echo "Tag v$VERSION does not exist, will create release"
|
|
|
|
|
echo "should_release=true" >> $GITHUB_OUTPUT
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
create-tag:
|
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
needs: check-version
|
|
|
|
|
if: needs.check-version.outputs.should_release == 'true'
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- name: Checkout repository
|
|
|
|
|
uses: actions/checkout@v4
|
|
|
|
|
|
|
|
|
|
- name: Create and push tag
|
|
|
|
|
run: |
|
|
|
|
|
git config user.name "GitHub Actions"
|
|
|
|
|
git config user.email "actions@github.com"
|
|
|
|
|
git tag -a "v${{ needs.check-version.outputs.version }}" -m "Release v${{ needs.check-version.outputs.version }}"
|
|
|
|
|
git push origin "v${{ needs.check-version.outputs.version }}"
|
|
|
|
|
|
|
|
|
|
build-windows:
|
|
|
|
|
runs-on: windows
|
|
|
|
|
@@ -68,6 +55,28 @@ jobs:
|
|
|
|
|
with:
|
|
|
|
|
node-version: '20'
|
|
|
|
|
|
|
|
|
|
- name: Cache npm dependencies
|
|
|
|
|
uses: actions/cache@v3
|
|
|
|
|
with:
|
|
|
|
|
path: |
|
|
|
|
|
~/.npm
|
|
|
|
|
node_modules
|
|
|
|
|
cinny/node_modules
|
|
|
|
|
key: npm-windows-${{ hashFiles('package-lock.json', 'cinny/package-lock.json') }}
|
|
|
|
|
restore-keys: |
|
|
|
|
|
npm-windows-
|
|
|
|
|
|
|
|
|
|
- name: Cache Cargo
|
|
|
|
|
uses: actions/cache@v3
|
|
|
|
|
with:
|
|
|
|
|
path: |
|
|
|
|
|
~/.cargo/registry
|
|
|
|
|
~/.cargo/git
|
|
|
|
|
src-tauri/target
|
|
|
|
|
key: cargo-windows-${{ hashFiles('src-tauri/Cargo.lock') }}
|
|
|
|
|
restore-keys: |
|
|
|
|
|
cargo-windows-
|
|
|
|
|
|
|
|
|
|
- name: Install Rust
|
|
|
|
|
uses: actions-rs/toolchain@v1
|
|
|
|
|
with:
|
|
|
|
|
@@ -76,11 +85,11 @@ jobs:
|
|
|
|
|
override: true
|
|
|
|
|
|
|
|
|
|
- name: Install dependencies (root)
|
|
|
|
|
run: npm install
|
|
|
|
|
run: npm ci --prefer-offline
|
|
|
|
|
|
|
|
|
|
- name: Install dependencies (cinny)
|
|
|
|
|
working-directory: ./cinny
|
|
|
|
|
run: npm install
|
|
|
|
|
run: npm ci --prefer-offline
|
|
|
|
|
|
|
|
|
|
- name: Build Tauri app
|
|
|
|
|
run: npm run tauri build
|
|
|
|
|
@@ -112,6 +121,28 @@ jobs:
|
|
|
|
|
with:
|
|
|
|
|
node-version: '20'
|
|
|
|
|
|
|
|
|
|
- name: Cache npm dependencies
|
|
|
|
|
uses: actions/cache@v3
|
|
|
|
|
with:
|
|
|
|
|
path: |
|
|
|
|
|
~/.npm
|
|
|
|
|
node_modules
|
|
|
|
|
cinny/node_modules
|
|
|
|
|
key: npm-linux-${{ hashFiles('package-lock.json', 'cinny/package-lock.json') }}
|
|
|
|
|
restore-keys: |
|
|
|
|
|
npm-linux-
|
|
|
|
|
|
|
|
|
|
- name: Cache Cargo
|
|
|
|
|
uses: actions/cache@v3
|
|
|
|
|
with:
|
|
|
|
|
path: |
|
|
|
|
|
~/.cargo/registry
|
|
|
|
|
~/.cargo/git
|
|
|
|
|
src-tauri/target
|
|
|
|
|
key: cargo-linux-${{ hashFiles('src-tauri/Cargo.lock') }}
|
|
|
|
|
restore-keys: |
|
|
|
|
|
cargo-linux-
|
|
|
|
|
|
|
|
|
|
- name: Install Rust
|
|
|
|
|
uses: actions-rs/toolchain@v1
|
|
|
|
|
with:
|
|
|
|
|
@@ -125,24 +156,29 @@ jobs:
|
|
|
|
|
sudo apt-get install -y libwebkit2gtk-4.1-dev libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev rpm
|
|
|
|
|
|
|
|
|
|
- name: Install dependencies (root)
|
|
|
|
|
run: npm install
|
|
|
|
|
run: npm ci --prefer-offline
|
|
|
|
|
|
|
|
|
|
- name: Install dependencies (cinny)
|
|
|
|
|
working-directory: ./cinny
|
|
|
|
|
run: npm install
|
|
|
|
|
run: npm ci --prefer-offline
|
|
|
|
|
|
|
|
|
|
- name: Build Tauri app
|
|
|
|
|
run: npm run tauri build
|
|
|
|
|
|
|
|
|
|
- name: Rename Linux packages
|
|
|
|
|
run: |
|
|
|
|
|
cp src-tauri/target/release/bundle/appimage/*.AppImage src-tauri/target/release/bundle/appimage/Cinny-Linux-x64.AppImage
|
|
|
|
|
cp src-tauri/target/release/bundle/deb/*.deb src-tauri/target/release/bundle/deb/Cinny-Linux-x64.deb
|
|
|
|
|
cp src-tauri/target/release/bundle/rpm/*.rpm src-tauri/target/release/bundle/rpm/Cinny-Linux-x64.rpm
|
|
|
|
|
# Copy signature file for updater
|
|
|
|
|
if [ -f src-tauri/target/release/bundle/appimage/*.AppImage.sig ]; then
|
|
|
|
|
cp src-tauri/target/release/bundle/appimage/*.AppImage.sig src-tauri/target/release/bundle/appimage/Cinny-Linux-x64.AppImage.sig
|
|
|
|
|
# Find and copy each file individually to avoid glob issues
|
|
|
|
|
find src-tauri/target/release/bundle/appimage -name "*.AppImage" -not -name "Cinny-Linux*" | head -1 | xargs -I {} cp {} src-tauri/target/release/bundle/appimage/Cinny-Linux-x64.AppImage
|
|
|
|
|
find src-tauri/target/release/bundle/deb -name "*.deb" -not -name "Cinny-Linux*" | head -1 | xargs -I {} cp {} src-tauri/target/release/bundle/deb/Cinny-Linux-x64.deb
|
|
|
|
|
find src-tauri/target/release/bundle/rpm -name "*.rpm" -not -name "Cinny-Linux*" | head -1 | xargs -I {} cp {} src-tauri/target/release/bundle/rpm/Cinny-Linux-x64.rpm
|
|
|
|
|
# Copy signature file for updater if it exists
|
|
|
|
|
if ls src-tauri/target/release/bundle/appimage/*.AppImage.sig 1> /dev/null 2>&1; then
|
|
|
|
|
find src-tauri/target/release/bundle/appimage -name "*.AppImage.sig" -not -name "Cinny-Linux*" | head -1 | xargs -I {} cp {} src-tauri/target/release/bundle/appimage/Cinny-Linux-x64.AppImage.sig
|
|
|
|
|
fi
|
|
|
|
|
# List what we have
|
|
|
|
|
ls -la src-tauri/target/release/bundle/appimage/
|
|
|
|
|
ls -la src-tauri/target/release/bundle/deb/
|
|
|
|
|
ls -la src-tauri/target/release/bundle/rpm/
|
|
|
|
|
|
|
|
|
|
- name: Upload AppImage
|
|
|
|
|
uses: actions/upload-artifact@v3
|
|
|
|
|
@@ -183,6 +219,39 @@ jobs:
|
|
|
|
|
with:
|
|
|
|
|
node-version: '20'
|
|
|
|
|
|
|
|
|
|
- name: Cache npm dependencies
|
|
|
|
|
uses: actions/cache@v3
|
|
|
|
|
with:
|
|
|
|
|
path: |
|
|
|
|
|
~/.npm
|
|
|
|
|
node_modules
|
|
|
|
|
cinny/node_modules
|
|
|
|
|
key: npm-android-${{ hashFiles('package-lock.json', 'cinny/package-lock.json') }}
|
|
|
|
|
restore-keys: |
|
|
|
|
|
npm-android-
|
|
|
|
|
|
|
|
|
|
- name: Cache Cargo
|
|
|
|
|
uses: actions/cache@v3
|
|
|
|
|
with:
|
|
|
|
|
path: |
|
|
|
|
|
~/.cargo/registry
|
|
|
|
|
~/.cargo/git
|
|
|
|
|
src-tauri/target
|
|
|
|
|
key: cargo-android-${{ hashFiles('src-tauri/Cargo.lock') }}
|
|
|
|
|
restore-keys: |
|
|
|
|
|
cargo-android-
|
|
|
|
|
|
|
|
|
|
- name: Cache Gradle
|
|
|
|
|
uses: actions/cache@v3
|
|
|
|
|
with:
|
|
|
|
|
path: |
|
|
|
|
|
~/.gradle/caches
|
|
|
|
|
~/.gradle/wrapper
|
|
|
|
|
src-tauri/gen/android/.gradle
|
|
|
|
|
key: gradle-${{ hashFiles('src-tauri/gen/android/**/*.gradle*', 'src-tauri/gen/android/gradle-wrapper.properties') }}
|
|
|
|
|
restore-keys: |
|
|
|
|
|
gradle-
|
|
|
|
|
|
|
|
|
|
- name: Setup Java
|
|
|
|
|
uses: actions/setup-java@v4
|
|
|
|
|
with:
|
|
|
|
|
@@ -205,11 +274,11 @@ jobs:
|
|
|
|
|
rustup target add i686-linux-android --toolchain stable
|
|
|
|
|
|
|
|
|
|
- name: Install dependencies (root)
|
|
|
|
|
run: npm install
|
|
|
|
|
run: npm ci --prefer-offline
|
|
|
|
|
|
|
|
|
|
- name: Install dependencies (cinny)
|
|
|
|
|
working-directory: ./cinny
|
|
|
|
|
run: npm install
|
|
|
|
|
run: npm ci --prefer-offline
|
|
|
|
|
|
|
|
|
|
- name: Build Android APK
|
|
|
|
|
shell: powershell
|
|
|
|
|
@@ -270,21 +339,28 @@ jobs:
|
|
|
|
|
|
|
|
|
|
create-release:
|
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
needs: [build-windows, build-linux, build-android]
|
|
|
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
|
|
|
needs: [check-version, build-windows, build-linux, build-android]
|
|
|
|
|
if: needs.check-version.outputs.should_release == 'true'
|
|
|
|
|
|
|
|
|
|
steps:
|
|
|
|
|
- name: Checkout repository
|
|
|
|
|
uses: actions/checkout@v4
|
|
|
|
|
|
|
|
|
|
- name: Create and push tag
|
|
|
|
|
run: |
|
|
|
|
|
git config user.name "GitHub Actions"
|
|
|
|
|
git config user.email "actions@github.com"
|
|
|
|
|
git tag -a "v${{ needs.check-version.outputs.version }}" -m "Release v${{ needs.check-version.outputs.version }}"
|
|
|
|
|
git push origin "v${{ needs.check-version.outputs.version }}"
|
|
|
|
|
|
|
|
|
|
- name: Download all artifacts
|
|
|
|
|
uses: actions/download-artifact@v3
|
|
|
|
|
with:
|
|
|
|
|
path: artifacts
|
|
|
|
|
|
|
|
|
|
- name: Get version from tag
|
|
|
|
|
- name: Get version
|
|
|
|
|
id: version
|
|
|
|
|
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
|
|
|
|
|
run: echo "VERSION=${{ needs.check-version.outputs.version }}" >> $GITHUB_OUTPUT
|
|
|
|
|
|
|
|
|
|
- name: Create update.json
|
|
|
|
|
run: |
|
|
|
|
|
@@ -320,6 +396,7 @@ jobs:
|
|
|
|
|
- name: Create Release
|
|
|
|
|
uses: softprops/action-gh-release@v1
|
|
|
|
|
with:
|
|
|
|
|
tag_name: v${{ needs.check-version.outputs.version }}
|
|
|
|
|
files: release-files/*
|
|
|
|
|
draft: false
|
|
|
|
|
prerelease: false
|
|
|
|
|
|