From 5e0f5ed4c0e9f2d146ec85eee2286ded1bc74063 Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Sat, 14 Feb 2026 20:18:04 +0800 Subject: chore(ci): Disable Musl platform in CI workflow Comment out the Musl platform configuration for CI. --- .github/workflows/semifold-ci.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to '.github/workflows/semifold-ci.yaml') diff --git a/.github/workflows/semifold-ci.yaml b/.github/workflows/semifold-ci.yaml index 9a91518..8aecd90 100644 --- a/.github/workflows/semifold-ci.yaml +++ b/.github/workflows/semifold-ci.yaml @@ -24,12 +24,12 @@ jobs: name: "Linux x86_64 (GNU)" target: "x86_64-unknown-linux-gnu" args: "--target x86_64-unknown-linux-gnu" - - platform: "ubuntu-latest" - name: "Linux x86_64 (Musl)" - target: "x86_64-unknown-linux-musl" - args: "--target x86_64-unknown-linux-musl" - install-musl: true - pkg-config-allow-cross: true + # - platform: "ubuntu-latest" + # name: "Linux x86_64 (Musl)" + # target: "x86_64-unknown-linux-musl" + # args: "--target x86_64-unknown-linux-musl" + # install-musl: true + # pkg-config-allow-cross: true - platform: "ubuntu-24.04-arm" name: "Linux arm64" target: "aarch64-unknown-linux-gnu" -- cgit v1.2.3-70-g09d2 From bf0d4d52bd4cecb67c1fc2bdbd3cedbc3e6ccdc3 Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Mon, 23 Feb 2026 21:31:27 +0800 Subject: ci(curseforge): add curseforge api key --- .github/workflows/prek.yml | 4 ++++ .github/workflows/semifold-ci.yaml | 1 + .github/workflows/test.yml | 1 + 3 files changed, 6 insertions(+) (limited to '.github/workflows/semifold-ci.yaml') diff --git a/.github/workflows/prek.yml b/.github/workflows/prek.yml index 5362472..3785c62 100644 --- a/.github/workflows/prek.yml +++ b/.github/workflows/prek.yml @@ -8,6 +8,10 @@ on: permissions: contents: write +env: + CARGO_TERM_COLOR: always + CURSEFORGE_API_KEY: ${{ secrets.CURSEFORGE_API_KEY }} + jobs: prek: runs-on: ubuntu-latest diff --git a/.github/workflows/semifold-ci.yaml b/.github/workflows/semifold-ci.yaml index 8aecd90..b28fefd 100644 --- a/.github/workflows/semifold-ci.yaml +++ b/.github/workflows/semifold-ci.yaml @@ -6,6 +6,7 @@ on: env: CARGO_TERM_COLOR: always CLICOLOR_FORCE: 1 + CURSEFORGE_API_KEY: ${{ secrets.CURSEFORGE_API_KEY }} permissions: id-token: write diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b58d10e..c292997 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,6 +15,7 @@ permissions: env: CARGO_TERM_COLOR: always + CURSEFORGE_API_KEY: ${{ secrets.CURSEFORGE_API_KEY }} jobs: test: -- cgit v1.2.3-70-g09d2 From 46ad16a5b8a971259ddf0b92cee42bb77a2beca6 Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Mon, 23 Feb 2026 23:50:44 +0800 Subject: ci(build): remove windows gnu --- .github/workflows/semifold-ci.yaml | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) (limited to '.github/workflows/semifold-ci.yaml') diff --git a/.github/workflows/semifold-ci.yaml b/.github/workflows/semifold-ci.yaml index b28fefd..27de130 100644 --- a/.github/workflows/semifold-ci.yaml +++ b/.github/workflows/semifold-ci.yaml @@ -25,14 +25,8 @@ jobs: name: "Linux x86_64 (GNU)" target: "x86_64-unknown-linux-gnu" args: "--target x86_64-unknown-linux-gnu" - # - platform: "ubuntu-latest" - # name: "Linux x86_64 (Musl)" - # target: "x86_64-unknown-linux-musl" - # args: "--target x86_64-unknown-linux-musl" - # install-musl: true - # pkg-config-allow-cross: true - platform: "ubuntu-24.04-arm" - name: "Linux arm64" + name: "Linux arm64 (GNU)" target: "aarch64-unknown-linux-gnu" args: "--target aarch64-unknown-linux-gnu" # macOS @@ -49,13 +43,8 @@ jobs: name: "Windows x86_64 (MSVC)" target: "x86_64-pc-windows-msvc" args: "--target x86_64-pc-windows-msvc --bundles nsis" - - platform: "windows-latest" - name: "Windows x86_64 (GNU)" - target: "x86_64-pc-windows-gnu" - args: "--target x86_64-pc-windows-gnu --bundles nsis" - rustflags: "-C link-arg=-lws2_32" - platform: "windows-11-arm" - name: "Windows arm64" + name: "Windows arm64 (MSVC)" target: "aarch64-pc-windows-msvc" args: "--target aarch64-pc-windows-msvc --bundles nsis" @@ -113,9 +102,7 @@ jobs: uses: tauri-apps/tauri-action@v0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - RUSTFLAGS: ${{ matrix.rustflags || '' }} CARGO_BUILD_TARGET: ${{ matrix.target }} - PKG_CONFIG_ALLOW_CROSS: ${{ matrix.pkg-config-allow-cross && '1' || '' }} with: args: ${{ matrix.args }} -- cgit v1.2.3-70-g09d2 From 8ff3af6cb908fd824b512379dd21ed4f595ab6bb Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Wed, 25 Feb 2026 02:04:39 +0800 Subject: chore(ci): release to aur --- .changes/config.toml | 12 ++- .github/workflows/semifold-ci.yaml | 1 + .gitignore | 3 + scripts/release-aur.ts | 152 +++++++++++++++++++++++++++++++++++++ 4 files changed, 164 insertions(+), 4 deletions(-) create mode 100644 scripts/release-aur.ts (limited to '.github/workflows/semifold-ci.yaml') diff --git a/.changes/config.toml b/.changes/config.toml index dbce913..fa6ca47 100644 --- a/.changes/config.toml +++ b/.changes/config.toml @@ -30,6 +30,10 @@ User-Agent = "Semifold 0.2.10" command = "cargo" args = ["publish"] +[[resolver.rust.publish]] +command = "pnpm" +args = ["tsx", "scripts/release-aur.ts"] + [[resolver.rust.post-version]] command = "pnpm" args = ["bump-tauri"] @@ -40,8 +44,8 @@ url = "https://registry.npmjs.org/{{ package.name }}/{{ package.version }}" [[resolver.nodejs.publish]] command = "npm" args = [ - "publish", - "--provenance", - "--access", - "public", + "publish", + "--provenance", + "--access", + "public", ] diff --git a/.github/workflows/semifold-ci.yaml b/.github/workflows/semifold-ci.yaml index 27de130..aad64ab 100644 --- a/.github/workflows/semifold-ci.yaml +++ b/.github/workflows/semifold-ci.yaml @@ -7,6 +7,7 @@ env: CARGO_TERM_COLOR: always CLICOLOR_FORCE: 1 CURSEFORGE_API_KEY: ${{ secrets.CURSEFORGE_API_KEY }} + AUR_SSH_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }} permissions: id-token: write diff --git a/.gitignore b/.gitignore index b3a0dbf..5d6d0f3 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,6 @@ __pycache__/ # Tauri artifacts artifacts/ + +# AUR Release +release/ diff --git a/scripts/release-aur.ts b/scripts/release-aur.ts new file mode 100644 index 0000000..d1fed87 --- /dev/null +++ b/scripts/release-aur.ts @@ -0,0 +1,152 @@ +import { execSync } from "node:child_process"; +import { + existsSync, + mkdirSync, + readFileSync, + unlinkSync, + writeFileSync, +} from "node:fs"; +import path from "node:path"; +import { version as pkgver } from "../src-tauri/tauri.conf.json"; + +function getSHA256Sum(url: string) { + const response = execSync(`curl -L ${url} | sha256sum`); + return response.toString().split(" ")[0]; +} + +execSync("mkdir -p release", { stdio: "inherit" }); +process.chdir("release"); + +const basePath = process.cwd(); +const homePath = process.env.HOME ?? basePath; +const sshPath = path.resolve(homePath, ".ssh"); +if (!existsSync(sshPath)) { + mkdirSync(sshPath, { recursive: true }); +} + +const url = "https://github.com/HydroRoll-Team/DropOut"; +const x86_64Url = `${url}/releases/download/dropout-v${pkgver}/dropout_${pkgver}_amd64.deb`; +const aarch64Url = `${url}/releases/download/dropout-v${pkgver}/dropout_${pkgver}_arm64.deb`; +const PKGBUILD = `\ +# Maintainer: HsiangNianian +# Contributor: 苏向夜 +pkgname=dropout-bin +pkgver=${pkgver} +pkgrel=1 +pkgdesc="A modern, reproducible, and developer-grade Minecraft launcher" +arch=('x86_64' 'aarch64') +url="${url}" +license=('MIT') +depends=('cairo' 'desktop-file-utils' 'gdk-pixbuf2' 'glib2' 'gtk3' 'hicolor-icon-theme' 'libsoup' 'pango' 'webkit2gtk-4.1') +options=('!strip' '!debug') +install=dropout-bin.install +source_x86_64=("${x86_64Url}") +source_aarch64=("${aarch64Url}") +sha256sums_x86_64=('${getSHA256Sum(x86_64Url)}') +sha256sums_aarch64=('${getSHA256Sum(aarch64Url)}') +package() { + # Extract package data + tar -xvf data.tar.gz -C "\${pkgdir}" +} +`; +const INSTALL = `\ +post_install() { + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor + update-desktop-database -q +}`; + +// Check if AUR_SSH_KEY environment variable is set +const AUR_SSH_KEY = process.env.AUR_SSH_KEY; +if (!AUR_SSH_KEY) { + console.error("AUR_SSH_KEY environment variable is not set."); + process.exit(1); +} + +// Remove old SSH key file if it exists +const aurSSHKeyPath = path.resolve(sshPath, "aur"); +if (existsSync(aurSSHKeyPath)) { + unlinkSync(aurSSHKeyPath); +} + +// Write new SSH key file +writeFileSync(aurSSHKeyPath, `${AUR_SSH_KEY}\n`); +execSync(`chmod 400 ${aurSSHKeyPath}`); + +// Add aur to known hosts +const knownHostsPath = path.resolve(sshPath, "known_hosts"); +if (existsSync(knownHostsPath)) { + const knownHosts = readFileSync(knownHostsPath, { + encoding: "utf-8", + }); + if (!knownHosts.includes("aur.archlinux.org")) { + execSync( + `ssh-keyscan -v -t "rsa,ecdsa,ed25519" aur.archlinux.org >> ~/.ssh/known_hosts`, + { stdio: "inherit" }, + ); + } +} else { + execSync( + `ssh-keyscan -v -t "rsa,ecdsa,ed25519" aur.archlinux.org > ~/.ssh/known_hosts`, + { stdio: "inherit" }, + ); +} + +// Clone AUR repository if not exists +if (!existsSync("aur")) { + execSync( + `git -c init.defaultBranch=master -c core.sshCommand="ssh -i ${aurSSHKeyPath}" clone ssh://aur@aur.archlinux.org/clip-bridge-bin.git aur`, + { stdio: "inherit" }, + ); +} +execSync(`git -C aur config core.sshCommand "ssh -i ${aurSSHKeyPath}"`, { + stdio: "inherit", +}); + +// Write PKGBUILD and .install files +const pkgbuildPath = path.resolve("aur", "PKGBUILD"); +const installPath = path.resolve("aur", "dropout-bin.install"); +writeFileSync(pkgbuildPath, PKGBUILD); +writeFileSync(installPath, INSTALL); + +// Generate .SRCINFO file +execSync("makepkg --printsrcinfo > .SRCINFO", { + cwd: "aur", + stdio: "inherit", +}); + +// Setup Git repository +execSync("git add PKGBUILD .SRCINFO", { + stdio: "inherit", + cwd: "aur", +}); +execSync(`git -C aur config user.name "HsiangNianian"`, { stdio: "inherit" }); +execSync(`git -C aur config user.email "i@jyunko.cn"`, { + stdio: "inherit", +}); + +// Test AUR package (skip in CI) +if (!process.env.CI) { + execSync("makepkg -f", { + stdio: "inherit", + cwd: "aur", + }); +} + +// Publish to AUR +execSync(`git commit -m "release: release v${pkgver}"`, { + stdio: "inherit", + cwd: "aur", +}); +execSync(`git push origin master`, { + stdio: "inherit", + cwd: "aur", +}); -- cgit v1.2.3-70-g09d2 From de978ed58fc15d6af70f340cf0c3c27df8808f28 Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Wed, 25 Feb 2026 12:21:03 +0800 Subject: fix(ci): setup makepkg before release aur --- .github/workflows/semifold-ci.yaml | 2 ++ 1 file changed, 2 insertions(+) (limited to '.github/workflows/semifold-ci.yaml') diff --git a/.github/workflows/semifold-ci.yaml b/.github/workflows/semifold-ci.yaml index aad64ab..e230e3a 100644 --- a/.github/workflows/semifold-ci.yaml +++ b/.github/workflows/semifold-ci.yaml @@ -183,6 +183,8 @@ jobs: node-version: 22 cache: "pnpm" cache-dependency-path: "pnpm-lock.yaml" + - name: Install Makepkg + run: sudo apt-get update && sudo apt-get install -y makepkg pacman - name: Install Node.js Dependencies run: pnpm install - name: Download build artifacts -- cgit v1.2.3-70-g09d2 From e7dabcb932cc76ca93f413f2f649544c0ff86a8c Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Wed, 25 Feb 2026 12:46:42 +0800 Subject: revert: revert due to pkgbuild error This reverts commit de978ed58fc15d6af70f340cf0c3c27df8808f28. --- .github/workflows/semifold-ci.yaml | 2 -- 1 file changed, 2 deletions(-) (limited to '.github/workflows/semifold-ci.yaml') diff --git a/.github/workflows/semifold-ci.yaml b/.github/workflows/semifold-ci.yaml index e230e3a..aad64ab 100644 --- a/.github/workflows/semifold-ci.yaml +++ b/.github/workflows/semifold-ci.yaml @@ -183,8 +183,6 @@ jobs: node-version: 22 cache: "pnpm" cache-dependency-path: "pnpm-lock.yaml" - - name: Install Makepkg - run: sudo apt-get update && sudo apt-get install -y makepkg pacman - name: Install Node.js Dependencies run: pnpm install - name: Download build artifacts -- cgit v1.2.3-70-g09d2 From a1126acbfe3f3e4ddaa85eb2e7d1af738572e9b9 Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Wed, 25 Feb 2026 13:50:53 +0800 Subject: fix(ci): setup makepkg before release aur --- .github/workflows/semifold-ci.yaml | 2 ++ 1 file changed, 2 insertions(+) (limited to '.github/workflows/semifold-ci.yaml') diff --git a/.github/workflows/semifold-ci.yaml b/.github/workflows/semifold-ci.yaml index aad64ab..e230e3a 100644 --- a/.github/workflows/semifold-ci.yaml +++ b/.github/workflows/semifold-ci.yaml @@ -183,6 +183,8 @@ jobs: node-version: 22 cache: "pnpm" cache-dependency-path: "pnpm-lock.yaml" + - name: Install Makepkg + run: sudo apt-get update && sudo apt-get install -y makepkg pacman - name: Install Node.js Dependencies run: pnpm install - name: Download build artifacts -- cgit v1.2.3-70-g09d2