diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 95c27a2..e753874 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -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/changelog-reader-action@v2.2.2 + with: + path: "CHANGELOG.md" + version: ${{ steps.get_version.outputs.version }} + + build: strategy: fail-fast: false matrix: @@ -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 @@ -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 diff --git a/.github/workflows/test_build.yml b/.github/workflows/test_build.yml new file mode 100644 index 0000000..4f97e23 --- /dev/null +++ b/.github/workflows/test_build.yml @@ -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 }} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..5a875d8 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,14 @@ +# Changelog + +## [0.1.1] + +
+ +| **To \ Form** | **CN** | +| :-----------: | :----: | +| **EN** | ✅ | +| **JP** | ✅ | + +
+ +如有 Bug,请提 issue diff --git a/script/tag.ts b/script/built.ts similarity index 79% rename from script/tag.ts rename to script/built.ts index 2a57857..b8e119e 100644 --- a/script/tag.ts +++ b/script/built.ts @@ -5,6 +5,8 @@ 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) { @@ -12,8 +14,8 @@ for (const dir of dirs) { 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}`) } } }