Skip to content

chore: bump version to 0.9.0 #90

chore: bump version to 0.9.0

chore: bump version to 0.9.0 #90

Workflow file for this run

name: 'publish'
on:
push:
tags:
- 'v*'
jobs:
create-release:
permissions:
contents: write
runs-on: ubuntu-20.04
outputs:
release_id: ${{ steps.create-release.outputs.result }}
release_note: ${{ steps.release-note.outputs.release_note }}
version: ${{ steps.get-version.outputs.version }}
steps:
- uses: actions/checkout@v3
- name: setup node
uses: actions/setup-node@v3
with:
node-version: 16
- name: get version
id: get-version
run: |
echo "PACKAGE_VERSION=$(node -p "\"${{ github.ref_name }}\".slice(1)")" >> $GITHUB_ENV
echo "version=$(node -p "\"${{ github.ref_name }}\".slice(1)")" >> $GITHUB_OUTPUT
- name: get release note
id: release-note
run: |
release_note=$(cat ${{ github.workspace }}/RELEASE_NOTE.md)
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
echo "RELEASE_NOTE<<$EOF" >> $GITHUB_ENV
echo "$release_note" >> $GITHUB_ENV
echo "$EOF" >> $GITHUB_ENV
release_note="${release_note//'%'/'%25'}"
release_note="${release_note//$'\n'/'%0A'}"
release_note="${release_note//$'\r'/'%0D'}"
echo "release_note=$release_note" >> $GITHUB_OUTPUT
- name: create release
id: create-release
uses: actions/github-script@v6
with:
script: |
const { data } = await github.rest.repos.createRelease({
owner: context.repo.owner,
repo: context.repo.repo,
tag_name: `v${process.env.PACKAGE_VERSION}`,
name: `ChatWizard v${process.env.PACKAGE_VERSION}`,
body: `${process.env.RELEASE_NOTE}`,
draft: true,
prerelease: false
})
return data.id
build:
needs: create-release
permissions:
contents: write
strategy:
fail-fast: false
matrix:
include:
- platform: macos-latest
target: x86_64-apple-darwin
- platform: macos-latest
target: aarch64-apple-darwin
- platform: ubuntu-20.04
target: x86_64-unknown-linux-gnu
- platform: windows-latest
target: x86_64-pc-windows-msvc
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v3
- name: setup node
uses: actions/setup-node@v3
with:
node-version: 16
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-20.04'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
- name: install target (macos aarch64 only)
if: matrix.target == 'aarch64-apple-darwin'
run: |
rustup target add aarch64-apple-darwin
- name: install frontend dependencies
run: npm i -g pnpm && cd web && pnpm install
- uses: tauri-apps/tauri-action@dev
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_KEY_PASSWORD: ''
with:
projectPath: gui
args: --target ${{ matrix.target }}
releaseId: ${{ needs.create-release.outputs.release_id }}
releaseBody: '${{ needs.create-release.outputs.release_note }}'
- name: build cli
run: |
cd cli
cargo build --release --target ${{ matrix.target }}
cd ..
- name: upload cli asset
if: matrix.platform == 'windows-latest'
uses: actions/github-script@v6
env:
release_id: ${{ needs.create-release.outputs.release_id }}
version: ${{ needs.create-release.outputs.version }}
target: ${{ matrix.target }}
with:
script: |
const file = require('fs').readFileSync(`target/${process.env.target}/release/chat-wizard-cli.exe`)
github.rest.repos.uploadReleaseAsset({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: process.env.release_id,
name: `chat-wizard-cli_${process.env.target}.exe`,
data: file,
})
- name: upload cli asset
if: matrix.platform != 'windows-latest'
uses: actions/github-script@v6
env:
release_id: ${{ needs.create-release.outputs.release_id }}
version: ${{ needs.create-release.outputs.version }}
target: ${{ matrix.target }}
with:
script: |
const file = require('fs').readFileSync(`target/${process.env.target}/release/chat-wizard-cli`)
github.rest.repos.uploadReleaseAsset({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: process.env.release_id,
name: `chat-wizard-cli_${process.env.target}`,
data: file,
})
- name: build server
run: |
cd server
cargo build --release --target ${{ matrix.target }}
cd ..
- name: upload server asset
if: matrix.platform == 'windows-latest'
uses: actions/github-script@v6
env:
release_id: ${{ needs.create-release.outputs.release_id }}
version: ${{ needs.create-release.outputs.version }}
target: ${{ matrix.target }}
with:
script: |
const file = require('fs').readFileSync(`target/${process.env.target}/release/chat-wizard-server.exe`)
github.rest.repos.uploadReleaseAsset({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: process.env.release_id,
name: `chat-wizard-server_${process.env.target}.exe`,
data: file,
})
- name: upload server asset
if: matrix.platform != 'windows-latest'
uses: actions/github-script@v6
env:
release_id: ${{ needs.create-release.outputs.release_id }}
version: ${{ needs.create-release.outputs.version }}
target: ${{ matrix.target }}
with:
script: |
const file = require('fs').readFileSync(`target/${process.env.target}/release/chat-wizard-server`)
github.rest.repos.uploadReleaseAsset({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: process.env.release_id,
name: `chat-wizard-server_${process.env.target}`,
data: file,
})
publish-release:
permissions:
contents: write
runs-on: ubuntu-20.04
needs: [create-release, build]
steps:
- name: publish release
id: publish-release
uses: actions/github-script@v6
env:
release_id: ${{ needs.create-release.outputs.release_id }}
with:
script: |
github.rest.repos.updateRelease({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: process.env.release_id,
draft: false,
prerelease: false
})
updater:
runs-on: ubuntu-latest
needs: [build, publish-release]
steps:
- uses: actions/checkout@v3
- run: |
mkdir -p ${{ github.workspace }}/docs
wget -O ${{ github.workspace }}/docs/latest.json https://github.com/lisiur/ChatWizard/releases/download/${{ github.ref_name }}/latest.json
- uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
PUBLISH_BRANCH: gh-pages
publish_dir: ./docs