Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
120 commits
Select commit Hold shift + click to select a range
c90d7a6
Fix build (#563)
Howard20181 Jan 12, 2023
3813c39
Fix Docker build (#570)
Howard20181 Jan 13, 2023
a60551a
Remove VMess aead option in Quantumult X (#538)
taurusxin Mar 22, 2023
d3fa05a
Make indentation in Clash profile consistent (#559)
flosacca Mar 22, 2023
4205dee
Stay at curl 7.88.1 until we adapt it (#590)
Howard20181 Mar 22, 2023
deb73c5
Enhancements
tindy2013 Jul 3, 2023
3ea4cad
Fix build error
tindy2013 Jul 3, 2023
49bc71e
Fix build error
tindy2013 Jul 3, 2023
7d9881b
Add docker compose deploy example (#599)
velviagris Jul 5, 2023
a7e441a
Do not add obfs-host to Surge Snell node if empty (#626)
kenxx Jul 26, 2023
0ba0cdd
Fix #569 #448 #431 (#637)
enximi Oct 3, 2023
09bb290
Fix client parse errors with '=' in remark strings (#632)
MDX-Tom Oct 3, 2023
b3ea72d
UDP is not supported yet in clash when using snell. (#627)
kenxx Oct 3, 2023
1b18bca
Add auto-sync script for rules
tindy2013 Oct 3, 2023
f7d512d
Fix build script
tindy2013 Oct 3, 2023
69cf9c3
Fix build script
tindy2013 Oct 3, 2023
f6e5cbb
Add new proxy group options for Loon and Quantumult X
tindy2013 Oct 3, 2023
5de1a3f
Remove unused interface
tindy2013 Oct 7, 2023
c3e8e88
Add support for SOCKS5 nodes in Loon configs
tindy2013 Oct 7, 2023
3cb07c3
Enhancements
tindy2013 Oct 7, 2023
0e07f44
Enhancements
tindy2013 Oct 9, 2023
cb409dd
Optimize codes
tindy2013 Oct 9, 2023
c4cd7fb
Add img-url support for Loon proxy groups
tindy2013 Oct 9, 2023
206deb4
Fix build script
tindy2013 Oct 9, 2023
ea01a41
Bump version to v0.8.0
tindy2013 Oct 9, 2023
e847df3
Add tag trigger for actions
tindy2013 Oct 9, 2023
b268888
Use latest release of curl
tindy2013 Oct 11, 2023
705e94e
Fix build scripts
tindy2013 Oct 11, 2023
b281c99
Fix warning: possibly dangling reference to a temporary
tindy2013 Oct 11, 2023
e7380d8
Bump version to v0.8.1
tindy2013 Oct 11, 2023
80c2a96
Add support for WireGuard nodes in Clash, Surge and Loon configs
tindy2013 Oct 15, 2023
25b25f6
Fix wrong flag identification When converting Nigeria node (#654)
HynoR Nov 6, 2023
d8075aa
Fix build error
tindy2013 Nov 7, 2023
f99748b
Fix build error
tindy2013 Nov 7, 2023
bbcb643
Enhancements
tindy2013 Nov 7, 2023
833dee1
Optimize codes
tindy2013 Nov 9, 2023
c530bc5
Fix request arguments not properly handled (#661)
tindy2013 Nov 9, 2023
66edf28
Fix build error
tindy2013 Nov 9, 2023
d58a772
Revert 'Fix build error'
tindy2013 Nov 9, 2023
afd7ab7
Update build scripts
tindy2013 Nov 9, 2023
26c3c42
Fix build error
tindy2013 Nov 9, 2023
ed732a9
Fix error when downloading subscription
tindy2013 Nov 9, 2023
8b45e06
Fix bad implementation of sing-box generation
tindy2013 Nov 10, 2023
51b65ec
Enhancements
tindy2013 Nov 10, 2023
4620873
Fix /getprofile not working properly
tindy2013 Nov 10, 2023
d08426a
Fix some rules not working in sing-box configs
tindy2013 Nov 10, 2023
4e94a98
Enhancements
tindy2013 Nov 11, 2023
6c7e009
Add support for other sing-box rule types
tindy2013 Nov 11, 2023
7ea43f9
Fix detecting supported rule type in sing-box configs
tindy2013 Nov 11, 2023
b71cd1e
Enhancements
tindy2013 Nov 13, 2023
885a63b
Enhancements
tindy2013 Nov 14, 2023
434a775
Update local dependencies
tindy2013 Nov 15, 2023
c578ea6
Optimize codes
tindy2013 Nov 15, 2023
7968d54
Treat "simple-obfs" in sing-box configs as obfs-local
tindy2013 Nov 19, 2023
c3524d0
Add support for exporting node list in sing-box format
tindy2013 Nov 20, 2023
05a542c
Enhancements
tindy2013 Nov 26, 2023
fdf983b
Use Host as SNI field if exists in Surge configs (#674)
RuyeNet Nov 26, 2023
38fd0da
Enhancements
tindy2013 Nov 26, 2023
40b4a94
Update .gitignore [skip ci]
tindy2013 Nov 26, 2023
d9ff111
Fix proxy type missing when append_proxy_type is enabled for Quantumu…
tindy2013 Dec 2, 2023
2f820b8
Enhancements
tindy2013 Dec 4, 2023
adaef88
Add Shadowsocks-2022 ciphers (#564)
Masaiki Dec 4, 2023
a0e2515
Enhancements
tindy2013 Dec 5, 2023
043c1fd
Enhancements
tindy2013 Dec 6, 2023
13623d6
Enhancements
tindy2013 Dec 6, 2023
eef5328
Enhancements
tindy2013 Dec 22, 2023
be2de49
Fix bug of request header forwarding (#709)
aylz10 Apr 2, 2024
623ffbb
Set most node_pref settings to indeterminate by default (#728)
Xiami2012 Apr 2, 2024
37c4e13
Add UA of Clash Verge to auto target (#713)
Apr 2, 2024
fb2aca3
* Fix Docker build
tindy2013 Apr 3, 2024
0cb4053
Fix build error
tindy2013 Apr 3, 2024
88635b6
Fix build error
tindy2013 Apr 3, 2024
c711f1a
Update Docker build workflow
tindy2013 Apr 3, 2024
624f5cd
Clean up digests before creating new image digest
tindy2013 Apr 3, 2024
9e66b07
Force delete
tindy2013 Apr 3, 2024
0f2cefd
Enhancements
tindy2013 Apr 3, 2024
cb15d56
Fix missing classical rulesets when exporting Clash configs with expa…
zhangsmallchi Apr 3, 2024
4864a6b
Support setting output style for proxy groups in Clash configs (#734)
tindy2013 Apr 3, 2024
670544c
Add macOS ARM build
tindy2013 Apr 3, 2024
73da1a8
Run with sudo when building for macOS
tindy2013 Apr 3, 2024
eeffa0f
Use brew provided path for libraries on macOS
tindy2013 Apr 3, 2024
6c38710
Add missing libraries
tindy2013 Apr 3, 2024
7fdba81
Fix implementation of getting random string (#726)
tindy2013 Apr 3, 2024
535d1d0
Fix "Profile not found" when generating artifact (#719)
tindy2013 Apr 3, 2024
55e765e
Fix broken string split (#736 #737 #738)
tindy2013 Apr 5, 2024
b228255
Update build script
tindy2013 Apr 5, 2024
1f57413
Fix Linux self-hosted build
tindy2013 Apr 5, 2024
40ba3fd
Update rules updater script
tindy2013 Apr 6, 2024
b82d492
Fix update_rules checkout branch
tindy2013 Apr 6, 2024
fb6a830
Add lhie1 rules to auto update config
tindy2013 Apr 6, 2024
6af2c56
Do not add check-interval and tolerance to SSID groups in QuanX configs
tindy2013 Apr 6, 2024
04ac987
Add clash_api to default sing-box config base
tindy2013 Apr 8, 2024
b9ad0c2
Bump version to v0.9.0
tindy2013 Apr 8, 2024
0c85747
Enhancements
tindy2013 Apr 8, 2024
6974910
Update Flag category (#744)
HynoR Apr 18, 2024
0c11565
Use Proxy.Host as alternative tls.server_name in sing-box to support …
SpadeLushen Aug 27, 2024
3f2281e
Add clash.external_controller option in config file (#772)
ak1ra-komj Aug 27, 2024
644b904
Add timezone env to Docker image (#776)
TioaChan Aug 27, 2024
79a7e88
Add underlying-proxy, smart policy group support for surge and renami…
mrhaoxx Sep 29, 2024
c207bfc
Add Hysteria & Hysteria 2 support (#731)
lonelam Nov 28, 2024
1d56f44
Add TCP Fast Open option to Clash configs
tindy2013 Dec 8, 2024
05910ac
Update Flag category (#810)
FanxJK Dec 31, 2024
3f5ed82
Add CORS header to httplib webserver
tindy2013 Dec 31, 2024
05959b0
Url-decode file name before adding as Clash rule provider (#815)
tindy2013 Jan 16, 2025
6911937
Update toml11 to v4.3.0
tindy2013 Jan 16, 2025
223d75a
Fix Clash rule provider did not trim domains and ip-cidrs
tindy2013 Jan 16, 2025
b39de30
Update toml11 to v4.3.0 in Dockerfile
tindy2013 Jan 16, 2025
92f66bf
Fix Clash classical rule provider not renaming properly
tindy2013 Jan 16, 2025
ddbc153
Fix CMake config error
tindy2013 May 16, 2025
0beeeb5
Fix wireguard preshared key and keepalive for surge exporter (#840)
mrhaoxx May 16, 2025
e17246d
Feat(hysteria2): support hysteria2 port hopping for clash/singbox res…
topjohncian May 16, 2025
c2610a3
Enhanced Profile Configuration Parsing and Tag Matching in profile.in…
se7enmuting May 16, 2025
e1c0b95
Support icon-url in Surge Proxy Groups
tindy2013 May 21, 2025
b99c679
Use GitHub-hosted ARM runner
tindy2013 May 21, 2025
82f3467
Modify rules order so that dns can be routed normally in Global mode.…
ArakawaHenri May 21, 2025
8e042ae
Fix icon-url not correctly appended to generated Surge configs
tindy2013 May 25, 2025
d02351c
feat: proxyToLoon supports Hysteria2 (#871)
IceCodeNew Nov 5, 2025
6d312fe
Delete include/quickjspp.hpp (#872)
IceCodeNew Nov 7, 2025
8a6e7f9
Correctly format Hysteria2 server_ports for sing-box (#876)
PenXLa Feb 27, 2026
5b8d3af
Use latest macOS version for GitHub Actions
tindy2013 Feb 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
242 changes: 92 additions & 150 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,206 +1,148 @@
name: GitHub CI
on: [push]
on:
push:
branches: [ master ]
tags:
- '**'
workflow_dispatch:
pull_request:

concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true

jobs:
linux32_build:
name: Linux x86 Build
runs-on: ubuntu-latest
linux_build:
strategy:
matrix:
include:
- arch: x86
artifact: subconverter_linux32
os: ubuntu-latest
- arch: amd64
artifact: subconverter_linux64
os: ubuntu-latest
- arch: armv7
artifact: subconverter_armv7
os: ubuntu-24.04-arm
- arch: aarch64
artifact: subconverter_aarch64
os: ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
name: Linux ${{ matrix.arch }} Build
steps:
- uses: actions/checkout@v2
- name: Checkout base
uses: actions/checkout@v4
- name: Add commit id into version
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
run: SHA=$(git rev-parse --short HEAD) && sed -i 's/\(v[0-9]\.[0-9]\.[0-9]\)/\1-'"$SHA"'/' src/version.h
- name: Build
run: docker run --rm -v $GITHUB_WORKSPACE:/root/workdir multiarch/alpine:x86-latest-stable /bin/sh -c "apk add bash git nodejs npm && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh"
run: docker run --rm -v $GITHUB_WORKSPACE:/root/workdir multiarch/alpine:${{ matrix.arch }}-latest-stable /bin/sh -c "apk add bash git nodejs npm && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh"
- name: Upload
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: subconverter_linux32
name: ${{ matrix.artifact }}
path: subconverter/
- name: Package Release
if: startsWith(github.ref, 'refs/tags/')
run: tar czf subconverter_linux32.tar.gz subconverter
if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }}
run: tar czf ${{ matrix.artifact }}.tar.gz subconverter
- name: Draft Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }}
uses: softprops/action-gh-release@v2
with:
files: subconverter_linux32.tar.gz
draft: true

linux64_build:
name: Linux x86_64 Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Add commit id into version
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
run: SHA=$(git rev-parse --short HEAD) && sed -i 's/\(v[0-9]\.[0-9]\.[0-9]\)/\1-'"$SHA"'/' src/version.h
- name: Build
run: docker run -v $GITHUB_WORKSPACE:/root/workdir multiarch/alpine:amd64-latest-stable /bin/sh -c "apk add bash git nodejs npm && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh"
- name: Upload
uses: actions/upload-artifact@v1
with:
name: subconverter_linux64
path: subconverter/
- name: Package Release
if: startsWith(github.ref, 'refs/tags/')
run: tar czf subconverter_linux64.tar.gz subconverter
- name: Draft Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: subconverter_linux64.tar.gz
draft: true

armv7_build:
name: Linux armv7 Build
runs-on: [self-hosted, linux, ARM64]
steps:
- uses: actions/checkout@v2
- name: Add commit id into version
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
run: SHA=$(git rev-parse --short HEAD) && sed -i 's/\(v[0-9]\.[0-9]\.[0-9]\)/\1-'"$SHA"'/' src/version.h
- name: Build
run: docker run -v $GITHUB_WORKSPACE:/root/workdir multiarch/alpine:armv7-latest-stable /bin/sh -c "apk add bash git nodejs npm && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh"
- name: Upload
uses: actions/upload-artifact@v1
with:
name: subconverter_armv7
path: subconverter/
- name: Package Release
if: startsWith(github.ref, 'refs/tags/')
run: tar czf subconverter_armv7.tar.gz subconverter
- name: Draft Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: subconverter_armv7.tar.gz
draft: true

aarch64_build:
name: Linux aarch64 Build
runs-on: [self-hosted, linux, ARM64]
steps:
- uses: actions/checkout@v2
- name: Add commit id into version
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
run: SHA=$(git rev-parse --short HEAD) && sed -i 's/\(v[0-9]\.[0-9]\.[0-9]\)/\1-'"$SHA"'/' src/version.h
- name: Build
run: docker run -v $GITHUB_WORKSPACE:/root/workdir multiarch/alpine:aarch64-latest-stable /bin/sh -c "apk add bash git nodejs npm && cd /root/workdir && chmod +x scripts/build.alpine.release.sh && bash scripts/build.alpine.release.sh"
- name: Upload
uses: actions/upload-artifact@v1
with:
name: subconverter_aarch64
path: subconverter/
- name: Package Release
if: startsWith(github.ref, 'refs/tags/')
run: tar czf subconverter_aarch64.tar.gz subconverter
- name: Draft Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: subconverter_aarch64.tar.gz
files: ${{ matrix.artifact }}.tar.gz
draft: true

macos_build:
name: macOS Build
runs-on: macos-latest
strategy:
matrix:
include:
- arch: x86
artifact: subconverter_darwin64
os: macos-26-intel
- arch: arm
artifact: subconverter_darwinarm
os: macos-26
runs-on: ${{ matrix.os }}
name: macOS ${{ matrix.arch }} Build
steps:
- uses: actions/checkout@v2
- name: Checkout base
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Add commit id into version
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
run: SHA=$(git rev-parse --short HEAD) && sed -i -e 's/\(v[0-9]\.[0-9]\.[0-9]\)/\1-'"$SHA"'/' src/version.h
- name: Build
run: bash scripts/build.macos.release.sh
- name: Upload
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: subconverter_darwin64
name: ${{ matrix.artifact }}
path: subconverter/
- name: Package Release
if: startsWith(github.ref, 'refs/tags/')
run: tar czf subconverter_darwin64.tar.gz subconverter
if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }}
run: tar czf ${{ matrix.artifact }}.tar.gz subconverter
- name: Draft Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }}
uses: softprops/action-gh-release@v2
with:
files: subconverter_darwin64.tar.gz
files: ${{ matrix.artifact }}.tar.gz
draft: true

windows64_build:
name: Windows x86_64 Build

windows_build:
strategy:
matrix:
include:
- arch: x86
artifact: subconverter_win32
env: i686
msystem: MINGW32
- arch: amd64
artifact: subconverter_win64
env: x86_64
msystem: MINGW64
runs-on: windows-latest
name: Windows ${{ matrix.arch }} Build
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2-beta
- name: Checkout base
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
node-version: '12'
- uses: msys2/setup-msys2@v2
with:
update: true
install: base-devel git mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-libevent mingw-w64-x86_64-pcre2 patch
msystem: MINGW64
path-type: inherit
- name: Add commit id into version
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
run: SHA=$(git rev-parse --short HEAD) && sed -i 's/\(v[0-9]\.[0-9]\.[0-9]\)/\1-'"$SHA"'/' src/version.h
- name: Build
run: bash scripts/build.windows.release.sh
- name: Upload
uses: actions/upload-artifact@v1
with:
name: subconverter_win64
path: subconverter/
- name: Package Release
if: startsWith(github.ref, 'refs/tags/')
run: 7z a subconverter_win64.7z subconverter/
- name: Draft Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: subconverter_win64.7z
draft: true

windows32_build:
name: Windows x86 Build
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2-beta
python-version: '3.11'
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '12'
- uses: msys2/setup-msys2@v2
node-version: '16'
- name: Setup MSYS2
uses: msys2/setup-msys2@v2
with:
update: true
install: base-devel git mingw-w64-i686-gcc mingw-w64-i686-cmake mingw-w64-i686-libevent mingw-w64-i686-pcre2 patch
msystem: MINGW32
install: base-devel git mingw-w64-${{ matrix.env }}-gcc mingw-w64-${{ matrix.env }}-cmake mingw-w64-${{ matrix.env }}-pcre2 patch
msystem: ${{ matrix.msystem }}
path-type: inherit
- name: Add commit id into version
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
run: SHA=$(git rev-parse --short HEAD) && sed -i 's/\(v[0-9]\.[0-9]\.[0-9]\)/\1-'"$SHA"'/' src/version.h
- name: Build
run: bash scripts/build.windows.release.sh
- name: Upload
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: subconverter_win32
name: ${{ matrix.artifact }}
path: subconverter/
- name: Package Release
if: startsWith(github.ref, 'refs/tags/')
run: 7z a subconverter_win32.7z subconverter/
if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }}
run: 7z a ${{ matrix.artifact }}.7z subconverter/
- name: Draft Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/') }}
uses: softprops/action-gh-release@v2
with:
files: subconverter_win32.7z
files: ${{ matrix.artifact }}.7z
draft: true
Loading