Skip to content

chore(deps): update rust crate compact_str to v0.9.1 #115

chore(deps): update rust crate compact_str to v0.9.1

chore(deps): update rust crate compact_str to v0.9.1 #115

name: Service Integration
on:
workflow_dispatch:
pull_request:
paths:
- "Cargo.toml"
- "Cargo.lock"
- "src/**"
- "tests/**"
- "resources/**"
- ".github/workflows/service-integration.yml"
- ".github/workflows/service-recovery.yml"
push:
branches:
- "**"
paths:
- "Cargo.toml"
- "Cargo.lock"
- "src/**"
- "tests/**"
- "resources/**"
- ".github/workflows/service-integration.yml"
- ".github/workflows/service-recovery.yml"
permissions:
contents: read
jobs:
cargo-tests:
name: Cargo Tests (${{ matrix.os }})
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
components: rustfmt, clippy
- name: Check formatting
run: cargo fmt --all --check
- name: Run Clippy
run: cargo clippy --all-features --all-targets -- -D warnings
- name: Run cargo test
run: cargo test --all-features
service-flow:
name: Service Integration (${{ matrix.os }})
needs: cargo-tests
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: stable
components: rustfmt, clippy
- name: Build binaries
run: cargo build --release --features "standalone client test"
- name: Install service (Linux)
if: runner.os == 'Linux'
run: sudo target/release/clash-verge-service-install --debug
- name: Verify service (Linux)
if: runner.os == 'Linux'
run: sudo systemctl is-active clash-verge-service.service
- name: Run mock_binary (Linux)
if: runner.os == 'Linux'
run: |
target/release/service-integration-driver start
sleep 2
pgrep -f mock_binary
- name: Stop mock_binary (Linux)
if: runner.os == 'Linux'
run: target/release/service-integration-driver stop
- name: Uninstall service (Linux)
if: runner.os == 'Linux'
run: sudo target/release/clash-verge-service-uninstall --debug
- name: Install service (macOS)
if: runner.os == 'macOS'
run: sudo target/release/clash-verge-service-install --debug
- name: Verify service (macOS)
if: runner.os == 'macOS'
run: sudo launchctl list | grep io.github.clash-verge-rev.clash-verge-rev.service
- name: Run mock_binary (macOS)
if: runner.os == 'macOS'
run: |
sudo target/release/service-integration-driver start
sleep 2
# pgrep -f mock_binary
- name: Stop mock_binary (macOS)
if: runner.os == 'macOS'
run: sudo target/release/service-integration-driver stop
- name: Uninstall service (macOS)
if: runner.os == 'macOS'
run: sudo target/release/clash-verge-service-uninstall --debug
- name: Install service (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
& "$env:GITHUB_WORKSPACE\\target\\release\\clash-verge-service-install.exe"
Start-Sleep -Seconds 2
- name: Verify service (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
$state = sc query clash_verge_service | Select-String "STATE"
if ($state -notmatch "RUNNING") { exit 1 }
- name: Run mock_binary (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
Start-Process "$env:GITHUB_WORKSPACE\\target\\release\\service-integration-driver.exe" -ArgumentList "start" -Wait
Start-Sleep -Seconds 2
Get-Process -Name mock_binary
- name: Stop mock_binary (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
Start-Process "$env:GITHUB_WORKSPACE\\target\\release\\service-integration-driver.exe" -ArgumentList "stop" -Wait
- name: Uninstall service (Windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
& "$env:GITHUB_WORKSPACE\\target\\release\\clash-verge-service-uninstall.exe"