Skip to content

Workflow file for this run

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/**/*