Skip to content

Commit 2a95015

Browse files
committed
feat: Implement SOCKS5 proxy server with authentication and release workflow
1 parent 73d6c85 commit 2a95015

6 files changed

Lines changed: 1190 additions & 1 deletion

File tree

.github/workflows/release.yml

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
build:
13+
name: Build ${{ matrix.target }}
14+
runs-on: ${{ matrix.os }}
15+
strategy:
16+
fail-fast: false
17+
matrix:
18+
include:
19+
# Linux
20+
- target: x86_64-unknown-linux-gnu
21+
os: ubuntu-latest
22+
artifact_name: s5-rust
23+
asset_name: s5-rust-linux-amd64
24+
- target: aarch64-unknown-linux-gnu
25+
os: ubuntu-latest
26+
artifact_name: s5-rust
27+
asset_name: s5-rust-linux-arm64
28+
use_cross: true
29+
30+
# macOS
31+
- target: x86_64-apple-darwin
32+
os: macos-latest
33+
artifact_name: s5-rust
34+
asset_name: s5-rust-darwin-amd64
35+
- target: aarch64-apple-darwin
36+
os: macos-latest
37+
artifact_name: s5-rust
38+
asset_name: s5-rust-darwin-arm64
39+
40+
# Windows
41+
- target: x86_64-pc-windows-msvc
42+
os: windows-latest
43+
artifact_name: s5-rust.exe
44+
asset_name: s5-rust-windows-amd64.exe
45+
- target: aarch64-pc-windows-msvc
46+
os: windows-latest
47+
artifact_name: s5-rust.exe
48+
asset_name: s5-rust-windows-arm64.exe
49+
50+
steps:
51+
- name: Checkout
52+
uses: actions/checkout@v4
53+
54+
- name: Install Rust toolchain
55+
uses: dtolnay/rust-toolchain@stable
56+
with:
57+
targets: ${{ matrix.target }}
58+
59+
- name: Install cross
60+
if: matrix.use_cross
61+
run: cargo install cross --git https://github.com/cross-rs/cross
62+
63+
- name: Build with cross
64+
if: matrix.use_cross
65+
run: cross build --release --target ${{ matrix.target }}
66+
67+
- name: Build
68+
if: ${{ !matrix.use_cross }}
69+
run: cargo build --release --target ${{ matrix.target }}
70+
71+
- name: Upload artifact
72+
uses: actions/upload-artifact@v4
73+
with:
74+
name: ${{ matrix.asset_name }}
75+
path: target/${{ matrix.target }}/release/${{ matrix.artifact_name }}
76+
77+
release:
78+
name: Create Release
79+
needs: build
80+
runs-on: ubuntu-latest
81+
steps:
82+
- name: Download all artifacts
83+
uses: actions/download-artifact@v4
84+
with:
85+
path: artifacts
86+
87+
- name: Prepare release assets
88+
run: |
89+
mkdir -p release
90+
for dir in artifacts/*/; do
91+
name=$(basename "$dir")
92+
if [[ "$name" == *.exe ]]; then
93+
cp "$dir"* "release/$name"
94+
else
95+
cp "$dir"* "release/$name"
96+
chmod +x "release/$name"
97+
fi
98+
done
99+
ls -la release/
100+
101+
- name: Create Release
102+
uses: softprops/action-gh-release@v2
103+
with:
104+
files: release/*
105+
generate_release_notes: true

.gitignore

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Build artifacts
2+
/target/
3+
4+
# Cargo.lock for binaries
5+
# Cargo.lock
6+
7+
# IDE
8+
.idea/
9+
.vscode/
10+
*.swp
11+
*.swo
12+
*~
13+
14+
# macOS
15+
.DS_Store
16+
17+
# Environment
18+
.env
19+
.env.*

0 commit comments

Comments
 (0)