fix #68
Workflow file for this run
This file contains 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: tauri_app_build | |
on: | |
push: | |
branches: | |
- 'releases/**' | |
jobs: | |
build: | |
strategy: | |
matrix: | |
os: [windows-latest,ubuntu-20.04] | |
runs-on: ${{ matrix.os }} | |
permissions: | |
contents: write | |
steps: | |
- name: Check-out repository | |
uses: actions/checkout@v3 | |
- run: echo "VERSION=$(jq -r '.package.version' vue/src-tauri/tauri.conf.json)" >> "$GITHUB_ENV" | |
if: matrix.os == 'ubuntu-20.04' | |
- run: echo "VERSION=$(jq -r '.package.version' vue/src-tauri/tauri.conf.json)" >> $env:GITHUB_ENV | |
if: matrix.os == 'windows-latest' | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
cache: 'pip' | |
cache-dependency-path: | | |
**/requirements*.txt | |
- name: Install Dependencies | |
run: | | |
pip install -r requirements.txt | |
- name: Build Executable | |
uses: Nuitka/Nuitka-Action@main | |
with: | |
nuitka-version: main | |
script-name: app.py | |
output-file: iib_api_server | |
output-dir: out | |
include-data-dir: | | |
vue/dist=vue/dist | |
- run: cp out/iib_api_server out/iib_app_cli-${{ env.VERSION }}-${{ runner.os }} | |
if: matrix.os == 'ubuntu-20.04' | |
- run: cp out/iib_api_server.exe out/iib_app_cli-${{ env.VERSION }}-${{ runner.os }}.exe | |
if: matrix.os == 'windows-latest' | |
- name: Upload Server Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: iib_app_cli_${{ runner.os }} | |
path: | | |
out/iib_app_cli-${{ env.VERSION }}-${{ runner.os }} | |
out/iib_app_cli-${{ env.VERSION }}-${{ runner.os }}.exe | |
- name: Upload Server Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: iib_api_server-${{ env.VERSION }}-${{ runner.os }} | |
path: | | |
out/iib_api_server.exe | |
out/iib_api_server | |
- run: mv out/iib_api_server.exe vue/src-tauri/iib_api_server-x86_64-pc-windows-msvc.exe | |
if: matrix.os == 'windows-latest' | |
- run: mv out/iib_api_server vue/src-tauri/iib_api_server-x86_64-unknown-linux-gnu | |
if: matrix.os == 'ubuntu-20.04' | |
- name: Install frontend dependencies | |
run: yarn install | |
working-directory: vue | |
- name: Rust setup | |
uses: dtolnay/rust-toolchain@stable | |
- name: Use Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- name: Rust cache | |
uses: swatinem/rust-cache@v2 | |
with: | |
workspaces: './vue/src-tauri -> target' | |
- name: Install dependencies (ubuntu only) | |
if: matrix.os == 'ubuntu-20.04' | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libayatana-appindicator3-dev librsvg2-dev patchelf | |
- name: Build the app | |
run: | | |
yarn tauri-build | |
working-directory: vue | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: bundle-${{ env.VERSION }}-${{ runner.os }} | |
path: | | |
vue/src-tauri/target/release/bundle/nsis/Infinite Image Browsing_${{ env.VERSION }}_x64-setup.exe | |
vue/src-tauri/target/release/bundle/deb/infinite-image-browsing_${{ env.VERSION }}_amd64.deb | |
build-by-pyinstaller: | |
strategy: | |
matrix: | |
os: [windows-latest] | |
runs-on: ${{ matrix.os }} | |
permissions: | |
contents: write | |
steps: | |
- name: Check-out repository | |
uses: actions/checkout@v3 | |
- run: echo "VERSION=$(jq -r '.package.version' vue/src-tauri/tauri.conf.json)" >> $env:GITHUB_ENV | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
cache: 'pip' | |
cache-dependency-path: | | |
**/requirements*.txt | |
- name: Install Dependencies | |
run: | | |
pip install -r requirements.txt | |
- uses: sayyid5416/pyinstaller@v1 | |
with: | |
spec: 'app.py' | |
upload_exe_with_name: 'My executable' | |
options: --onefile | |
- run: mv dist/app.exe vue/src-tauri/iib_api_server-x86_64-pc-windows-msvc.exe | |
- name: Install frontend dependencies | |
run: yarn install | |
working-directory: vue | |
- name: Rust setup | |
uses: dtolnay/rust-toolchain@stable | |
- name: Use Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- name: Rust cache | |
uses: swatinem/rust-cache@v2 | |
with: | |
workspaces: './vue/src-tauri -> target' | |
- name: Install dependencies (ubuntu only) | |
if: matrix.os == 'ubuntu-20.04' | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libayatana-appindicator3-dev librsvg2-dev patchelf | |
- name: Build the app | |
run: | | |
yarn tauri-build | |
working-directory: vue | |
- run: | | |
cd vue/src-tauri/target/release/bundle/nsis | |
mv "Infinite Image Browsing_${{ env.VERSION }}_x64-setup.exe" "Infinite Image Browsing_${{ env.VERSION }}_x64-setup-pyinstaller.exe" | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: bundle-${{ env.VERSION }}-${{ runner.os }} | |
path: | | |
vue/src-tauri/target/release/bundle/nsis/Infinite Image Browsing_${{ env.VERSION }}_x64-setup-pyinstaller.exe | |
release: | |
needs: [build-by-pyinstaller, build] | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- name: Check-out repository | |
uses: actions/checkout@v3 | |
- run: echo "VERSION=$(jq -r '.package.version' vue/src-tauri/tauri.conf.json)" >> "$GITHUB_ENV" | |
- name: Delete drafts | |
uses: hugo19941994/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/download-artifact@v3 | |
with: | |
name: bundle-${{ env.VERSION }}-Windows | |
path: artifacts | |
- uses: actions/download-artifact@v3 | |
with: | |
name: bundle-${{ env.VERSION }}-Linux | |
path: artifacts | |
- uses: actions/download-artifact@v3 | |
with: | |
name: iib_app_cli_Windows | |
path: artifacts | |
- uses: actions/download-artifact@v3 | |
with: | |
name: iib_app_cli_Linux | |
path: artifacts | |
- name: Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
draft: true | |
tag_name: v${{ env.VERSION }} | |
files: artifacts/**/* | |