mirror of
https://github.com/lencx/ChatGPT.git
synced 2024-10-01 01:06:13 -04:00
207 lines
6.8 KiB
YAML
207 lines
6.8 KiB
YAML
name: Release CI
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
|
|
|
|
jobs:
|
|
build-chatgpt:
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- build: linux
|
|
os: ubuntu-latest
|
|
arch: x86_64
|
|
target: x86_64-unknown-linux-gnu
|
|
- build: macos
|
|
os: macos-latest
|
|
arch: x86_64
|
|
target: x86_64-apple-darwin
|
|
- buid: macos
|
|
os: macos-latest
|
|
arch: aarch64
|
|
target: aarch64-apple-darwin
|
|
- build: windows
|
|
os: windows-latest
|
|
arch: x86_64
|
|
target: x86_64-pc-windows-msvc
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- uses: pnpm/action-setup@v2
|
|
name: Install pnpm
|
|
id: pnpm-install
|
|
with:
|
|
version: 7
|
|
run_install: false
|
|
|
|
- name: Install Node.js
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 18
|
|
cache: pnpm
|
|
- run: pnpm install --frozen-lockfile
|
|
|
|
- name: 'Setup Rust'
|
|
uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
targets: ${{ matrix.target }}
|
|
- uses: Swatinem/rust-cache@v2
|
|
with:
|
|
key: ${{ matrix.target }}
|
|
|
|
- name: Install xattr (macos only)
|
|
if: matrix.os == 'macos-latest'
|
|
run: pip install xattr
|
|
|
|
- name: Install dependencies (ubuntu only)
|
|
if: matrix.os == 'ubuntu-latest'
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libayatana-appindicator3-dev librsvg2-dev patchelf
|
|
|
|
- name: Build FE
|
|
run: pnpm build:fe
|
|
|
|
- name: Install rust target
|
|
run: rustup target add ${{ matrix.target }}
|
|
|
|
- name: fix tray icon
|
|
if: matrix.os != 'macos-latest'
|
|
run: |
|
|
pnpm fix:tray
|
|
|
|
- run: pnpm build --target ${{ matrix.target }}
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
|
|
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
if: matrix.os == 'ubuntu-latest'
|
|
with:
|
|
name: artifacts-${{ matrix.arch }}
|
|
path: |
|
|
./target/${{ matrix.target }}/release/bundle/appimage/**.AppImage.*
|
|
./target/${{ matrix.target }}/release/bundle/deb/**.deb
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
if: matrix.os == 'macos-latest'
|
|
with:
|
|
name: artifacts-${{ matrix.arch }}
|
|
path: |
|
|
./target/${{ matrix.target }}/release/bundle/dmg/**.dmg
|
|
./target/${{ matrix.target }}/release/bundle/macos/**.app.*
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
if: matrix.os == 'windows-latest'
|
|
with:
|
|
name: artifacts-${{ matrix.arch }}
|
|
path: |
|
|
./target/${{ matrix.target }}/release/bundle/msi/**
|
|
|
|
release-chatgpt:
|
|
needs: build-chatgpt
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install xattr
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y xattr
|
|
|
|
- name: Query version number
|
|
run: echo "version=${GITHUB_REF:11}" >> $GITHUB_ENV
|
|
|
|
- name: Download x86_64 artifacts
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: artifacts-x86_64
|
|
path: artifacts/x86_64
|
|
|
|
- name: Download aarch64 artifacts
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
name: artifacts-aarch64
|
|
path: artifacts/aarch64
|
|
|
|
- name: Rename artifacts
|
|
run: |
|
|
mv "artifacts/aarch64/dmg/ChatGPT_${{ env.version }}_aarch64.dmg" "artifacts/ChatGPT_${{ env.version }}_macos_aarch64.dmg"
|
|
mv "artifacts/aarch64/macos/ChatGPT.app.tar.gz" "artifacts/ChatGPT_${{ env.version }}_macos_aarch64.app.tar.gz"
|
|
mv "artifacts/aarch64/macos/ChatGPT.app.tar.gz.sig" "artifacts/ChatGPT_${{ env.version }}_macos_aarch64.app.tar.gz.sig"
|
|
|
|
mv "artifacts/x86_64/dmg/ChatGPT_${{ env.version }}_x64.dmg" "artifacts/ChatGPT_${{ env.version }}_macos_x86_64.dmg"
|
|
mv "artifacts/x86_64/macos/ChatGPT.app.tar.gz" "artifacts/ChatGPT_${{ env.version }}_macos_x86_64.app.tar.gz"
|
|
mv "artifacts/x86_64/macos/ChatGPT.app.tar.gz.sig" "artifacts/ChatGPT_${{ env.version }}_macos_x86_64.app.tar.gz.sig"
|
|
|
|
mv "artifacts/x86_64/deb/chat-gpt_${{ env.version }}_amd64.deb" "artifacts/x86_64/deb/ChatGPT_${{ env.version }}_linux_x86_64.deb"
|
|
mv "artifacts/x86_64/appimage/chat-gpt_${{ env.version }}_amd64.AppImage.tar.gz" "artifacts/ChatGPT_${{ env.version }}_linux_x86_64.AppImage.tar.gz"
|
|
mv "artifacts/x86_64/appimage/chat-gpt_${{ env.version }}_amd64.AppImage.tar.gz.sig" "artifacts/ChatGPT_${{ env.version }}_linux_x86_64.AppImage.tar.gz.sig"
|
|
|
|
mv "artifacts/x86_64/ChatGPT_${{ env.version }}_x64_en-US.msi" "artifacts/ChatGPT_${{ env.version }}_windows_x86_64.msi"
|
|
mv "artifacts/x86_64/ChatGPT_${{ env.version }}_x64_en-US.msi.zip" "artifacts/ChatGPT_${{ env.version }}_windows_x86_64.msi.zip"
|
|
mv "artifacts/x86_64/ChatGPT_${{ env.version }}_x64_en-US.msi.zip.sig" "artifacts/ChatGPT_${{ env.version }}_windows_x86_64.msi.zip.sig"
|
|
|
|
- name: Create Release
|
|
uses: softprops/action-gh-release@master
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
tag_name: v${{ env.version }}
|
|
name: ChatGPT v${{ env.version }}
|
|
body: See the assets to download this version and install.
|
|
prerelease: false
|
|
generate_release_notes: false
|
|
files: ./artifacts/**/*
|
|
|
|
updater:
|
|
runs-on: ubuntu-latest
|
|
needs: release-chatgpt
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- uses: pnpm/action-setup@v2
|
|
name: Install pnpm
|
|
id: pnpm-install
|
|
with:
|
|
version: 7
|
|
run_install: false
|
|
|
|
- name: Install Node.js
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 18
|
|
cache: pnpm
|
|
- run: pnpm install --frozen-lockfile
|
|
|
|
- name: Updater JSON
|
|
run: pnpm updater --token=${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Deploy install.json
|
|
uses: peaceiris/actions-gh-pages@v3
|
|
with:
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
publish_dir: ./updater
|
|
# force_orphan: true
|
|
|
|
- name: Query version number
|
|
run: echo "version=${GITHUB_REF:11}" >> $GITHUB_ENV
|
|
|
|
publish-winget:
|
|
# Action can only be run on windows
|
|
runs-on: windows-latest
|
|
needs: [build-chatgpt, release-chatgpt]
|
|
steps:
|
|
- uses: vedantmgoyal2009/winget-releaser@v1
|
|
with:
|
|
identifier: lencx.ChatGPT
|
|
token: ${{ secrets.WINGET_TOKEN }}
|
|
version: ${{ github.event.release.tag_name }}
|