Skip to content

feat: new version notification and release 2.0.0 #4

feat: new version notification and release 2.0.0

feat: new version notification and release 2.0.0 #4

name: Release Linux ARM64 Packages
on:
push:
tags:
- 'v*'
- '[0-9]*'
workflow_dispatch:
inputs:
tag_name:
description: 'Tag name to publish release under (e.g. v1.8.1)'
required: false
type: string
permissions:
contents: write
jobs:
build-linux-arm64:
name: Build Linux Packages (ARM64)
runs-on: ubuntu-24.04-arm
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install npm dependencies
run: npm ci
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Cache Cargo registry & build
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
src-tauri/target
key: ${{ runner.os }}-arm64-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-arm64-cargo-
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libgtk-3-dev \
libwebkit2gtk-4.1-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
patchelf \
dpkg-dev \
rpm \
wget \
xdg-utils \
file \
squashfs-tools
- name: Create .env.local
run: |
cat << 'EOF' > .env.local
VITE_GOOGLE_CLIENT_ID=${{ secrets.VITE_GOOGLE_CLIENT_ID }}
VITE_GOOGLE_API_KEY=${{ secrets.VITE_GOOGLE_API_KEY }}
VITE_GOOGLE_CLIENT_APP=${{ secrets.VITE_GOOGLE_CLIENT_APP }}
VITE_GOOGLE_CLIENT_SECRET=${{ secrets.VITE_GOOGLE_CLIENT_SECRET }}
VITE_GOOGLE_CLIENT_ID_PROD=${{ secrets.VITE_GOOGLE_CLIENT_ID_PROD || secrets.VITE_GOOGLE_CLIENT_ID }}
VITE_GOOGLE_API_KEY_PROD=${{ secrets.VITE_GOOGLE_API_KEY_PROD || secrets.VITE_GOOGLE_API_KEY }}
VITE_ENVIRONMENT=production
VITE_DROPBOX_CLIENT_ID=${{ secrets.VITE_DROPBOX_CLIENT_ID }}
VITE_DROPBOX_CLIENT_SECRET=${{ secrets.VITE_DROPBOX_CLIENT_SECRET }}
VITE_DROPBOX_CLIENT_ID_PROD=${{ secrets.VITE_DROPBOX_CLIENT_ID_PROD || secrets.VITE_DROPBOX_CLIENT_ID }}
VITE_DROPBOX_CLIENT_SECRET_PROD=${{ secrets.VITE_DROPBOX_CLIENT_SECRET_PROD || secrets.VITE_DROPBOX_CLIENT_SECRET }}
VITE_BOX_CLIENT_ID=${{ secrets.VITE_BOX_CLIENT_ID }}
VITE_BOX_CLIENT_SECRET=${{ secrets.VITE_BOX_CLIENT_SECRET }}
VITE_BOX_CLIENT_ID_PROD=${{ secrets.VITE_BOX_CLIENT_ID_PROD || secrets.VITE_BOX_CLIENT_ID }}
VITE_BOX_CLIENT_SECRET_PROD=${{ secrets.VITE_BOX_CLIENT_SECRET_PROD || secrets.VITE_BOX_CLIENT_SECRET }}
VITE_ONEDRIVE_CLIENT_ID=${{ secrets.VITE_ONEDRIVE_CLIENT_ID }}
VITE_ONEDRIVE_CLIENT_SECRET=${{ secrets.VITE_ONEDRIVE_CLIENT_SECRET }}
VITE_PREMIUM_AGENT=${{ secrets.VITE_PREMIUM_AGENT }}
VITE_PREMIUM_MODEL=${{ secrets.VITE_PREMIUM_MODEL }}
AGENT=${{ secrets.AGENT }}
EASYAI_MODEL=${{ secrets.EASYAI_MODEL }}
GEMINI_API=${{ secrets.GEMINI_API }}
EOF
- name: Build Tauri application
run: npm run tauri:build
- name: Extract version from tag
id: version
run: |
INPUT_TAG="${{ inputs.tag_name }}"
if [ -n "$INPUT_TAG" ]; then
TAG="$INPUT_TAG"
elif [ "${GITHUB_REF_TYPE}" = "tag" ]; then
TAG="${GITHUB_REF_NAME}"
else
TAG="v$(node -p "require('./package.json').version")"
fi
VERSION="${TAG#v}"
echo "tag=$TAG" >> "$GITHUB_OUTPUT"
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
- name: List built packages
run: |
echo "Contents of src-tauri/target/release/bundle:"
find src-tauri/target/release/bundle -name "*.deb" -o -name "*.AppImage" -o -name "*.rpm" || true
- name: Upload Linux ARM64 packages to GitHub Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch'
with:
tag_name: ${{ steps.version.outputs.tag }}
files: |
src-tauri/target/release/bundle/deb/*.deb
src-tauri/target/release/bundle/appimage/*.AppImage
src-tauri/target/release/bundle/rpm/*.rpm
fail_on_unmatched_files: false
append_body: true
body: |
### Linux Packages (ARM64)
| Package | Format | Install |
| --- | --- | --- |
| `.deb` | Debian/Ubuntu (arm64) | `sudo dpkg -i easyeditor_*.deb` |
| `.rpm` | Fedora/openSUSE (arm64) | `sudo rpm -i easyeditor-*.rpm` |
| `.AppImage` | Universal (arm64) | `chmod +x easyeditor_*.AppImage && ./easyeditor_*.AppImage` |
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}