From 78f1157a3a9425cf10f48ee35a7219c75e7a4be8 Mon Sep 17 00:00:00 2001 From: Yujia Qiao Date: Sun, 1 Oct 2023 17:05:05 +0800 Subject: [PATCH] chore: fix build - Drop tls for embedded devices in release - Upgrade cross - Specify rust 1.71 --- .github/workflows/release.yml | 48 ++++++++++++++++++++++++++++++++--- Cargo.toml | 4 +++ 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4fc1d3fb..c42762f3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,59 +20,99 @@ jobs: - os: ubuntu-latest target: x86_64-unknown-linux-gnu exe: rathole + cross: false - os: ubuntu-latest target: x86_64-unknown-linux-musl exe: rathole + cross: false - os: ubuntu-latest target: aarch64-unknown-linux-musl exe: rathole + cross: true - os: ubuntu-latest target: arm-unknown-linux-musleabi exe: rathole + cross: true - os: ubuntu-latest target: arm-unknown-linux-musleabihf exe: rathole + cross: true - os: ubuntu-latest target: armv7-unknown-linux-musleabihf exe: rathole + cross: true - os: ubuntu-latest target: mips-unknown-linux-gnu exe: rathole + cross: true - os: ubuntu-latest target: mips-unknown-linux-musl exe: rathole + cross: true - os: ubuntu-latest target: mipsel-unknown-linux-gnu exe: rathole + cross: true - os: ubuntu-latest target: mipsel-unknown-linux-musl exe: rathole + cross: true - os: ubuntu-latest target: mips64-unknown-linux-gnuabi64 exe: rathole + cross: true - os: ubuntu-latest target: mips64el-unknown-linux-gnuabi64 exe: rathole + cross: true - os: macos-latest target: x86_64-apple-darwin exe: rathole + cross: false - os: windows-latest target: x86_64-pc-windows-msvc exe: rathole.exe + cross: false steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal - toolchain: stable + # Since rust 1.72, some platforms are tier 3 + toolchain: 1.71 + default: true + + - name: Install OpenSSL + if: matrix.os == 'ubuntu-latest' + run: sudo apt-get install pkg-config libssl-dev + - name: Install OpenSSL + if: matrix.os == 'macos-latest' + run: brew install openssl@3 + + # Native build + - name: Install target + if: matrix.cross == false + run: rustup target add ${{ matrix.target }} + - name: Run tests + if: matrix.cross == false + run: cargo test --release --target ${{ matrix.target }} --verbose + - name: Build release + if: matrix.cross == false + run: cargo build --release --target ${{ matrix.target }} + + # Cross build - name: Install cross - run: cargo install --version 0.1.16 cross + if: matrix.cross + run: cargo install --version 0.2.5 cross - name: Run tests - run: cross test --release --target ${{ matrix.target }} --verbose + if: matrix.cross + run: cross test --release --target ${{ matrix.target }} --verbose --features embedded --no-default-features - name: Build release - run: cross build --release --target ${{ matrix.target }} + if: matrix.cross + run: cross build --release --target ${{ matrix.target }} --features embedded --no-default-features + - name: Run UPX # Upx may not support some platforms. Ignore the errors continue-on-error: true diff --git a/Cargo.toml b/Cargo.toml index 501e8fab..1311f889 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,6 +26,10 @@ websocket = ["tokio-tungstenite", "tokio-util", "futures-core", "futures-sink", # Configuration hot-reload support hot-reload = ["notify"] +# Default feature releasing embedded devices +# Cross-compiling with tls is hard. So we don't :( +embedded = ["server", "client", "hot-reload", "noise"] + # Feature to enable tokio-console. Disabled by default. # Don't enable it unless for debugging purposes. console = ["console-subscriber", "tokio/tracing"]