Skip to content

Commit

Permalink
[mod] 处理多目标构建
Browse files Browse the repository at this point in the history
  • Loading branch information
Borber committed Nov 22, 2023
1 parent 4f51828 commit d5c50cb
Show file tree
Hide file tree
Showing 4 changed files with 110 additions and 8 deletions.
56 changes: 50 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,35 @@
name: "Test build"
name: "Release"

permissions:
contents: write

on:
push:
branches:
- master
tags:
- v.*

jobs:
test-tauri:
create-release:
runs-on: ubuntu-latest
outputs:
changes: ${{ steps.changelog_reader.outputs.changes }}
version: ${{ steps.changelog_reader.outputs.VERSION }}
steps:
- uses: actions/checkout@v4
- name: Get version number
id: get_version
run: |
VERSION=${GITHUB_REF#refs/tags/}
VERSION=${VERSION/v./}
echo "::set-output name=version::$VERSION"
- name: Changelog Reader
id: changelog_reader
uses: mindsers/[email protected]
with:
path: "CHANGELOG.md"
version: ${{ steps.get_version.outputs.version }}

build:
strategy:
fail-fast: false
matrix:
Expand All @@ -15,12 +39,15 @@ jobs:
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4

- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 20

- name: Install Rust nightly
uses: dtolnay/rust-toolchain@nightly

- name: Install dependencies (windows only)
if: matrix.platform == 'windows-latest'
uses: ilammy/msvc-dev-cmd@v1
Expand All @@ -29,25 +56,42 @@ jobs:
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: latest
- name: Install frontend dependencies
run: pnpm install

- name: Install deno
uses: denoland/setup-deno@v1
with:
deno-version: canary

- name: Confirm language
env:
MATRIX_LANG: ${{ matrix.lang }}
run: deno run -A script/lang.ts

- name: Build
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Add tag

- name: Built
env:
MATRIX_LANG: ${{ matrix.lang }}
run: deno run -A script/tag.ts
run: deno run -A script/built.ts

- name: Upload release assets
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
name: Tran ${{ needs.create_release.outputs.version }}
body: |
${{ needs.create_release.outputs.changes }}
files: release/*
draft: false
prerelease: false
42 changes: 42 additions & 0 deletions .github/workflows/test_build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: "Test build"
on: [pull_request]

jobs:
test-tauri:
strategy:
fail-fast: true
matrix:
platform: [macos-latest, ubuntu-latest, windows-latest]

runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install Rust nightly
uses: dtolnay/rust-toolchain@nightly
- name: Install dependencies (windows only)
if: matrix.platform == 'windows-latest'
uses: ilammy/msvc-dev-cmd@v1
- name: Install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: latest
- name: Install frontend dependencies
run: pnpm install
- name: Install deno
uses: denoland/setup-deno@v1
with:
deno-version: canary
run: deno run -A script/lang.ts
- name: Build
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Changelog

## [0.1.1]

<div align="center">

| **To \ Form** | **CN** |
| :-----------: | :----: |
| **EN** ||
| **JP** ||

</div>

如有 Bug,请提 issue
6 changes: 4 additions & 2 deletions script/tag.ts → script/built.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,17 @@ const dirs = ["msi", "nsis", "deb", "appimage", "dmg", "macos",]
const lang = Deno.env.get("MATRIX_LANG")
const root = "src-tauri/target/release/bundle"

await Deno.mkdir("release")

for (const dir of dirs) {
ensureDir(`${root}/${dir}`).then(async () => {
if (Deno.statSync(`${root}/${dir}`).isDirectory) {
for await (const file of Deno.readDir(`${root}/${dir}`)) {
if (file.isFile && file.name.startsWith("tran")) {
let name = file.name
name = name.replace("tran", "tran" + "_" + lang)
Deno.renameSync(`${root}/${dir}/${file.name}`, `${root}/${dir}/${name}`)
console.log(`${root}/${dir}/${name}`)
await Deno.copyFile(`${root}/${dir}/${file.name}`, `release/${name}`)
console.log(`release/${name}`)
}
}
}
Expand Down

0 comments on commit d5c50cb

Please sign in to comment.