diff --git a/.github/workflows/compatible.yml b/.github/workflows/compatible.yml deleted file mode 100644 index f3e748e0..00000000 --- a/.github/workflows/compatible.yml +++ /dev/null @@ -1,101 +0,0 @@ -name: Compatible CI - -on: - workflow_dispatch: - # push: - # tags: - # - v** - -env: - CARGO_INCREMENTAL: 0 - RUST_BACKTRACE: short - -jobs: - build: - strategy: - fail-fast: false - matrix: - targets: - - tag: macOS-10.15 - os: macos-10.15 - - tag: Ubuntu18 - os: ubuntu-18.04 - - tag: Ubuntu22 - os: ubuntu-22.04 - - runs-on: ${{ matrix.targets.os }} - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - - name: Install Rust - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - profile: minimal - override: true - - - name: Rust Cache - uses: Swatinem/rust-cache@v2 - with: - workspaces: src-tauri - - - name: Install Node - uses: actions/setup-node@v1 - with: - node-version: 16 - - # - name: Install Dependencies (ubuntu18 only) - # if: matrix.targets.os == 'ubuntu-18.04' - # run: | - # sudo apt-get update - # sudo apt-get install -y libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev libgtk-3-dev libappindicator3-dev librsvg2-dev libayatana-appindicator3-dev - - - name: Install Dependencies (ubuntu22 only) - if: startsWith(matrix.targets.os, 'ubuntu-') - run: | - sudo apt-get update - sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf - - - name: Get yarn cache dir path - id: yarn-cache-dir-path - run: echo "::set-output name=dir::$(yarn cache dir)" - - - name: Yarn Cache - uses: actions/cache@v2 - id: yarn-cache - with: - path: ${{ steps.yarn-cache-dir-path.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - - name: Yarn install and check - run: | - yarn install --network-timeout 1000000 - yarn run check - - - name: Tauri build - uses: tauri-apps/tauri-action@v0 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} - TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} - with: - tagName: ${{ matrix.targets.tag }} - releaseName: "Compatible For ${{ matrix.targets.tag }}" - releaseBody: "More new features are now supported." - releaseDraft: false - prerelease: false - - # - name: Portable Bundle - # if: matrix.os == 'windows-latest' - # # rebuild with env settings - # run: | - # yarn build - # yarn run portable - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} - # TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} - # VITE_WIN_PORTABLE: 1 diff --git a/.github/workflows/dev.yaml b/.github/workflows/dev.yaml deleted file mode 100644 index 3fb715c2..00000000 --- a/.github/workflows/dev.yaml +++ /dev/null @@ -1,97 +0,0 @@ -name: Dev Build - -on: - workflow_dispatch: - push: - branches: - - dev - -env: - CARGO_INCREMENTAL: 0 - RUST_BACKTRACE: short - -jobs: - release: - strategy: - matrix: - os: [windows-latest, ubuntu-latest, macos-latest] - - runs-on: ${{ matrix.os }} - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: install Rust stable - uses: dtolnay/rust-toolchain@stable - - - name: Rust Cache - uses: Swatinem/rust-cache@v2 - with: - workspaces: src-tauri - - - name: Install Node - uses: actions/setup-node@v4 - with: - node-version: "20" - - - uses: pnpm/action-setup@v2 - name: Install pnpm - with: - version: 8 - run_install: false - - - name: Delete current release assets - if: startsWith(matrix.os, 'ubuntu-') - uses: mknejp/delete-release-assets@v1 - with: - token: ${{ secrets.GITHUB_TOKEN }} - tag: dev - fail-if-no-assets: false - fail-if-no-release: false - assets: | - *.zip - *.gz - *.AppImage - *.deb - *.dmg - *.msi - *.sig - *.exe - *.json - - - name: Install Dependencies (Ubuntu Only) - if: startsWith(matrix.os, 'ubuntu-') - run: | - sudo apt-get update - sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf openssl - - - name: Pnpm install and check - run: | - pnpm i - pnpm check - - - name: Tauri build - uses: tauri-apps/tauri-action@v0 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} - TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} - with: - tagName: dev - releaseName: "Clash Verge Dev" - releaseBody: "More new features are now supported." - releaseDraft: false - prerelease: true - tauriScript: pnpm - args: -f default-meta - - - name: Portable Bundle - if: matrix.os == 'windows-latest' - run: | - pnpm portable - env: - TAG_NAME: dev - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} - TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} - VITE_WIN_PORTABLE: 1 diff --git a/.github/workflows/meta.yml b/.github/workflows/meta.yml deleted file mode 100644 index b6ecfc1f..00000000 --- a/.github/workflows/meta.yml +++ /dev/null @@ -1,106 +0,0 @@ -name: Meta CI - -on: - workflow_dispatch: - push: - tags: - - v** - -env: - CARGO_INCREMENTAL: 0 - RUST_BACKTRACE: short - -jobs: - release: - strategy: - fail-fast: false - matrix: - os: [windows-latest, ubuntu-latest, macos-latest] - runs-on: ${{ matrix.os }} - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - - name: Install Rust - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - profile: minimal - override: true - - - name: Rust Cache - uses: Swatinem/rust-cache@v2 - with: - workspaces: src-tauri - - - name: Install Node - uses: actions/setup-node@v1 - with: - node-version: 16 - - - name: Delete current release assets - if: matrix.os == 'ubuntu-latest' - uses: mknejp/delete-release-assets@v1 - with: - token: ${{ secrets.GITHUB_TOKEN }} - tag: meta - fail-if-no-assets: false - fail-if-no-release: false - assets: | - *.zip - *.gz - *.AppImage - *.deb - *.dmg - *.msi - *.sig - - - name: Install Dependencies (ubuntu only) - if: startsWith(matrix.os, 'ubuntu-') - run: | - sudo apt-get update - sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf openssl - - - name: Get yarn cache dir path - id: yarn-cache-dir-path - run: echo "::set-output name=dir::$(yarn cache dir)" - - - name: Yarn Cache - uses: actions/cache@v2 - id: yarn-cache - with: - path: ${{ steps.yarn-cache-dir-path.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - - name: Yarn install and check - run: | - yarn install --network-timeout 1000000 - yarn run check - - - name: Tauri build - uses: tauri-apps/tauri-action@v0 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} - TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} - with: - tagName: meta - releaseName: "Clash Verge Meta" - releaseBody: "" - releaseDraft: false - prerelease: true - args: -f default-meta - - - name: Portable Bundle - if: matrix.os == 'windows-latest' - run: | - yarn build -f default-meta - yarn run portable - env: - TAG_NAME: meta - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} - TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} - VITE_WIN_PORTABLE: 1 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index cf2e99fa..561631be 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -110,7 +110,7 @@ jobs: releaseDraft: false prerelease: false tauriScript: pnpm - args: -f default-meta --target ${{ matrix.target }} + args: --target ${{ matrix.target }} - name: Tauri build (Ubuntu Arm64) if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.target,'aarch64') @@ -131,7 +131,7 @@ jobs: releaseDraft: false prerelease: false tauriScript: pnpm - args: -f default-meta --target ${{ matrix.target }} -b deb,updater + args: --target ${{ matrix.target }} -b deb,updater - name: Tauri build (Ubuntu Armv7) if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.target,'armv7') @@ -152,7 +152,7 @@ jobs: releaseDraft: false prerelease: false tauriScript: pnpm - args: -f default-meta --target ${{ matrix.target }} -b deb,updater + args: --target ${{ matrix.target }} -b deb,updater - name: Portable Bundle if: matrix.os == 'windows-latest' diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index 10de78b0..00000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,75 +0,0 @@ -name: Test CI - -on: - workflow_dispatch: - inputs: - os: - description: "Runs on OS" - required: true - default: windows-latest - type: choice - options: - - windows-latest - - ubuntu-latest - - macos-latest - - ubuntu-18.04 - - ubuntu-20.04 - - ubuntu-22.04 - - macos-10.15 - - macos-11 - - macos-12 - - windows-2019 - - windows-2022 - -env: - CARGO_INCREMENTAL: 0 - RUST_BACKTRACE: short - -jobs: - release: - runs-on: ${{ github.event.inputs.os }} - steps: - - name: System Version - run: | - echo ${{ github.event.inputs.os }} - - - name: Checkout repository - uses: actions/checkout@v4 - - - name: install Rust stable - uses: dtolnay/rust-toolchain@stable - - - name: Rust Cache - uses: Swatinem/rust-cache@v2 - with: - workspaces: src-tauri - - - name: Install Node - uses: actions/setup-node@v4 - with: - node-version: "16" - cache: "yarn" - - - name: Install Dependencies (ubuntu only) - if: startsWith(github.event.inputs.os, 'ubuntu-') - run: | - sudo apt-get update - sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf - - - name: Yarn install and check - run: | - yarn install --network-timeout 1000000 --frozen-lockfile - yarn run check - - - name: Tauri build - uses: tauri-apps/tauri-action@v0 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} - TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} - with: - tagName: alpha - releaseName: "Clash Verge Alpha" - releaseBody: "Alpha Version (include debug)" - releaseDraft: false - includeUpdaterJson: false diff --git a/package.json b/package.json index 88616100..cf5361a6 100644 --- a/package.json +++ b/package.json @@ -3,17 +3,14 @@ "version": "1.4.3", "license": "GPL-3.0", "scripts": { - "dev": "tauri dev -f default-meta", - "dev:diff": "tauri dev -f verge-dev", - "build": "tauri build -f default-meta", + "dev": "tauri dev", + "build": "tauri build", "tauri": "tauri", "web:dev": "vite", "web:build": "tsc && vite build", "web:serve": "vite preview", - "aarch": "node scripts/aarch.mjs", "check": "node scripts/check.mjs", "updater": "node scripts/updater.mjs", - "publish": "node scripts/publish.mjs", "portable": "node scripts/portable.mjs", "prepare": "husky install" }, diff --git a/scripts/aarch.mjs b/scripts/aarch.mjs deleted file mode 100644 index cfb19014..00000000 --- a/scripts/aarch.mjs +++ /dev/null @@ -1,119 +0,0 @@ -/** - * Build and upload assets - * for macOS(aarch) - */ -import fs from "fs-extra"; -import path from "path"; -import { exit } from "process"; -import { execSync } from "child_process"; -import { createRequire } from "module"; -import { getOctokit, context } from "@actions/github"; - -// to `meta` tag -const META = process.argv.includes("--meta"); -// to `alpha` tag -const ALPHA = process.argv.includes("--alpha"); - -const require = createRequire(import.meta.url); - -async function resolve() { - if (!process.env.GITHUB_TOKEN) { - throw new Error("GITHUB_TOKEN is required"); - } - if (!process.env.GITHUB_REPOSITORY) { - throw new Error("GITHUB_REPOSITORY is required"); - } - if (!process.env.TAURI_PRIVATE_KEY) { - throw new Error("TAURI_PRIVATE_KEY is required"); - } - if (!process.env.TAURI_KEY_PASSWORD) { - throw new Error("TAURI_KEY_PASSWORD is required"); - } - - const { version } = require("../package.json"); - - const tag = META ? "meta" : ALPHA ? "alpha" : `v${version}`; - const buildCmd = META ? `pnpm build -f default-meta` : `pnpm build`; - - console.log(`[INFO]: Upload to tag "${tag}"`); - console.log(`[INFO]: Building app. "${buildCmd}"`); - - execSync(buildCmd); - - const cwd = process.cwd(); - const bundlePath = path.join(cwd, "src-tauri/target/release/bundle"); - const join = (p) => path.join(bundlePath, p); - - const appPathList = [ - join("macos/Clash Verge.aarch64.app.tar.gz"), - join("macos/Clash Verge.aarch64.app.tar.gz.sig"), - ]; - - for (const appPath of appPathList) { - if (fs.pathExistsSync(appPath)) { - fs.removeSync(appPath); - } - } - - fs.copyFileSync(join("macos/Clash Verge.app.tar.gz"), appPathList[0]); - fs.copyFileSync(join("macos/Clash Verge.app.tar.gz.sig"), appPathList[1]); - - const options = { owner: context.repo.owner, repo: context.repo.repo }; - const github = getOctokit(process.env.GITHUB_TOKEN); - - const { data: release } = await github.rest.repos.getReleaseByTag({ - ...options, - tag, - }); - - if (!release.id) throw new Error("failed to find the release"); - - await uploadAssets(release.id, [ - join(`dmg/Clash Verge_${version}_aarch64.dmg`), - ...appPathList, - ]); -} - -// From tauri-apps/tauri-action -// https://github.com/tauri-apps/tauri-action/blob/dev/packages/action/src/upload-release-assets.ts -async function uploadAssets(releaseId, assets) { - const github = getOctokit(process.env.GITHUB_TOKEN); - - // Determine content-length for header to upload asset - const contentLength = (filePath) => fs.statSync(filePath).size; - - for (const assetPath of assets) { - const headers = { - "content-type": "application/zip", - "content-length": contentLength(assetPath), - }; - - const ext = path.extname(assetPath); - const filename = path.basename(assetPath).replace(ext, ""); - const assetName = path.dirname(assetPath).includes(`target${path.sep}debug`) - ? `${filename}-debug${ext}` - : `${filename}${ext}`; - - console.log(`[INFO]: Uploading ${assetName}...`); - - try { - await github.rest.repos.uploadReleaseAsset({ - headers, - name: assetName, - data: fs.readFileSync(assetPath), - owner: context.repo.owner, - repo: context.repo.repo, - release_id: releaseId, - }); - } catch (error) { - console.log(error.message); - } - } -} - -if (process.platform === "darwin" && process.arch === "arm64") { - resolve(); -} else { - console.error("invalid"); - exit(1); -} diff --git a/scripts/publish.mjs b/scripts/publish.mjs deleted file mode 100644 index 523ad18c..00000000 --- a/scripts/publish.mjs +++ /dev/null @@ -1,53 +0,0 @@ -import fs from "fs-extra"; -import { createRequire } from "module"; -import { execSync } from "child_process"; -import { resolveUpdateLog } from "./updatelog.mjs"; - -const require = createRequire(import.meta.url); - -// publish -async function resolvePublish() { - const flag = process.argv[2] ?? "patch"; - const packageJson = require("../package.json"); - const tauriJson = require("../src-tauri/tauri.conf.json"); - - let [a, b, c] = packageJson.version.split(".").map(Number); - - if (flag === "major") { - a += 1; - b = 0; - c = 0; - } else if (flag === "minor") { - b += 1; - c = 0; - } else if (flag === "patch") { - c += 1; - } else throw new Error(`invalid flag "${flag}"`); - - const nextVersion = `${a}.${b}.${c}`; - packageJson.version = nextVersion; - tauriJson.package.version = nextVersion; - - // 发布更新前先写更新日志 - const nextTag = `v${nextVersion}`; - await resolveUpdateLog(nextTag); - - await fs.writeFile( - "./package.json", - JSON.stringify(packageJson, undefined, 2) - ); - await fs.writeFile( - "./src-tauri/tauri.conf.json", - JSON.stringify(tauriJson, undefined, 2) - ); - - execSync("git add ./package.json"); - execSync("git add ./src-tauri/tauri.conf.json"); - execSync(`git commit -m "v${nextVersion}"`); - execSync(`git tag -a v${nextVersion} -m "v${nextVersion}"`); - execSync(`git push`); - execSync(`git push origin v${nextVersion}`); - console.log(`Publish Successfully...`); -} - -resolvePublish(); diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 3ff14c15..51b3f090 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -59,8 +59,6 @@ features = ["global-shortcut-all", "process-all", "shell-all", "system-tray", "u [features] default = ["custom-protocol"] custom-protocol = ["tauri/custom-protocol"] -verge-dev = [] -default-meta = [] [profile.release] panic = "abort" diff --git a/src-tauri/src/config/clash.rs b/src-tauri/src/config/clash.rs index 912c0143..70169adc 100644 --- a/src-tauri/src/config/clash.rs +++ b/src-tauri/src/config/clash.rs @@ -24,29 +24,12 @@ impl IClashTemp { pub fn template() -> Self { let mut map = Mapping::new(); - map.insert( - "mixed-port".into(), - match cfg!(feature = "default-meta") { - false => 7890.into(), - true => 7898.into(), - }, - ); + map.insert("mixed-port".into(), 7890.into()); map.insert("log-level".into(), "info".into()); map.insert("allow-lan".into(), false.into()); map.insert("mode".into(), "rule".into()); - map.insert( - "external-controller".into(), - match cfg!(feature = "default-meta") { - false => "127.0.0.1:9090".into(), - true => "127.0.0.1:9098".into(), - }, - ); + map.insert("external-controller".into(), "127.0.0.1:9090".into()); map.insert("secret".into(), "".into()); - #[cfg(feature = "default-meta")] - map.insert("unified-delay".into(), true.into()); - #[cfg(feature = "default-meta")] - map.insert("tcp-concurrent".into(), true.into()); - // map.insert("ipv6".into(), false.into()); Self(map) } diff --git a/src-tauri/src/config/profiles.rs b/src-tauri/src/config/profiles.rs index c28858dd..e2d85ccc 100644 --- a/src-tauri/src/config/profiles.rs +++ b/src-tauri/src/config/profiles.rs @@ -55,12 +55,7 @@ impl IProfiles { pub fn template() -> Self { Self { - valid: Some(vec![ - "dns".into(), - "sub-rules".into(), - "unified-delay".into(), - "tcp-concurrent".into(), - ]), + valid: Some(vec!["dns".into()]), items: Some(vec![]), ..Self::default() } diff --git a/src-tauri/src/config/verge.rs b/src-tauri/src/config/verge.rs index a5ea8a33..5f744a70 100644 --- a/src-tauri/src/config/verge.rs +++ b/src-tauri/src/config/verge.rs @@ -130,14 +130,8 @@ impl IVerge { pub fn template() -> Self { Self { - clash_core: match cfg!(feature = "default-meta") { - false => Some("clash".into()), - true => Some("clash-meta".into()), - }, - language: match cfg!(feature = "default-meta") { - false => Some("en".into()), - true => Some("zh".into()), - }, + clash_core: Some("clash-meta".into()), + language: Some("zh".into()), theme_mode: Some("system".into()), theme_blur: Some(false), traffic_graph: Some(true),