Skip to content

version: 0.7

version: 0.7 #4

Workflow file for this run

name: "publish"
on:
workflow_dispatch:
push:
tags:
- "v*"
jobs:
get-version:
runs-on: ubuntu-latest
outputs:
VERSION: ${{ steps.get_version.outputs.VERSION }}
steps:
- uses: actions/checkout@v4
- name: Get version number
id: get_version
run: |
VERSION=$(jq -r '.version' src-tauri/tauri.conf.json)
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
windows-build:
needs: get-version
env:
VERSION: ${{ needs.get-version.outputs.VERSION }}
outputs:
VERSION: ${{ env.VERSION }}
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: lts/*
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Install frontend dependencies
run: pnpm install
- name: Build tauri app
uses: tauri-apps/tauri-action@v0
- name: Create artifacts directory
run: mkdir -p artifacts
- name: Copy nsis to release assets
run: cp src-tauri/target/release/bundle/nsis/jmcomic-downloader_${{ env.VERSION }}_x64-setup.exe artifacts/jmcomic-downloader_${{ env.VERSION }}_windows_x64.exe
- name: Zip portable to release assets
run: |
cd src-tauri/target/release
7z a -tzip ../../../artifacts/jmcomic-downloader_${{ env.VERSION }}_windows_x64_portable.zip jmcomic-downloader.exe
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: windows-assets
path: artifacts/*
linux-build:
needs: get-version
env:
VERSION: ${{ needs.get-version.outputs.VERSION }}
outputs:
VERSION: ${{ env.VERSION }}
runs-on: ubuntu-22.04
steps:
- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
- uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: lts/*
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Install frontend dependencies
run: pnpm install
- name: Build tauri app
uses: tauri-apps/tauri-action@v0
- name: Create artifacts directory
run: mkdir -p artifacts
- name: Copy deb to release assets
run: cp src-tauri/target/release/bundle/deb/jmcomic-downloader_${{ env.VERSION }}_amd64.deb artifacts/jmcomic-downloader_${{ env.VERSION }}_linux_amd64.deb
- name: Copy rpm to release assets
run: cp src-tauri/target/release/bundle/rpm/jmcomic-downloader-${{ env.VERSION }}-1.x86_64.rpm artifacts/jmcomic-downloader_${{ env.VERSION }}_linux_amd64.rpm
- name: Zip portable to release assets
run: |
cd src-tauri/target/release
tar -czf ../../../artifacts/jmcomic-downloader_${{ env.VERSION }}_linux_amd64_portable.tar.gz jmcomic-downloader
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: linux-assets
path: artifacts/*
macos-build:
needs: get-version
env:
VERSION: ${{ needs.get-version.outputs.VERSION }}
outputs:
VERSION: ${{ env.VERSION }}
strategy:
fail-fast: false
matrix:
arch: [ aarch64, x86_64 ]
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: lts/*
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.arch }}-apple-darwin
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Install frontend dependencies
run: pnpm install
- name: Build tauri app
uses: tauri-apps/tauri-action@v0
with:
args: --target ${{ matrix.arch }}-apple-darwin
- name: Create artifacts directory
run: mkdir -p artifacts
- name: Copy dmg to release assets
env:
ARCH_ALIAS: ${{ matrix.arch == 'x86_64' && 'x64' || matrix.arch }}
run: cp src-tauri/target/${{ matrix.arch }}-apple-darwin/release/bundle/dmg/jmcomic-downloader_${{ env.VERSION }}_${{ env.ARCH_ALIAS }}.dmg artifacts/jmcomic-downloader_${{ env.VERSION }}_macos_${{ matrix.arch }}.dmg
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: macos-assets-${{ matrix.arch }}
path: artifacts/*
create-release:
needs: [ windows-build, linux-build, macos-build ]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Download Windows assets
uses: actions/download-artifact@v4
with:
name: windows-assets
path: artifacts/windows
- name: Download Linux assets
uses: actions/download-artifact@v4
with:
name: linux-assets
path: artifacts/linux
- name: Download macOS aarch64 assets
uses: actions/download-artifact@v4
with:
name: macos-assets-aarch64
path: artifacts/macos-aarch64
- name: Download macOS x86_64 assets
uses: actions/download-artifact@v4
with:
name: macos-assets-x86_64
path: artifacts/macos-x86_64
- name: Create GitHub Release
id: create_release
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
name: Desktop App v${{ needs.windows-build.outputs.VERSION }}
body: |
Take a look at the assets to download and install this app.
files: |
artifacts/windows/*
artifacts/linux/*
artifacts/macos-aarch64/*
artifacts/macos-x86_64/*
draft: true
prerelease: false