arti: update to 2.1.0 #18
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build Arti and Lyrebird | |
| on: | |
| push: | |
| tags: | |
| - 'arti-[0-9]+\.[0-9]+\.[0-9]+-lyrebird-[0-9]+\.[0-9]+\.[0-9]+' | |
| jobs: | |
| extract-versions: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| arti_ver: ${{ steps.extract.outputs.arti_ver }} | |
| lyrebird_ver: ${{ steps.extract.outputs.lyrebird_ver }} | |
| steps: | |
| - name: Extract versions | |
| id: extract | |
| run: | | |
| arti_ver=$(echo '${{ github.ref_name }}' | cut -d "-" -f 2) | |
| lyrebird_ver=$(echo '${{ github.ref_name }}' | cut -d "-" -f 4) | |
| echo "arti_ver=$arti_ver" >> "$GITHUB_OUTPUT" | |
| echo "lyrebird_ver=$lyrebird_ver" >> "$GITHUB_OUTPUT" | |
| build-linux-arti: | |
| runs-on: ubuntu-latest | |
| container: rust:trixie | |
| needs: extract-versions | |
| steps: | |
| - name: Download and build | |
| run: | | |
| curl -LO https://gitlab.torproject.org/tpo/core/arti/-/archive/arti-v${{ needs.extract-versions.outputs.arti_ver }}/arti-arti-v${{ needs.extract-versions.outputs.arti_ver }}.tar.gz | |
| tar xf arti-arti-v${{ needs.extract-versions.outputs.arti_ver }}.tar.gz | |
| cd arti-arti-v${{ needs.extract-versions.outputs.arti_ver }} | |
| cargo build -p arti --locked --release | |
| strip -s target/release/arti | |
| mkdir /out | |
| cp target/release/arti /out | |
| cp crates/arti/src/arti-example-config.toml /out | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: arti-linux | |
| path: | | |
| /out/arti | |
| /out/arti-example-config.toml | |
| build-linux-lyrebird: | |
| runs-on: ubuntu-latest | |
| container: golang:trixie | |
| needs: extract-versions | |
| steps: | |
| - name: Download and build | |
| run: | | |
| curl -LO https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird/-/archive/lyrebird-${{ needs.extract-versions.outputs.lyrebird_ver }}/lyrebird-lyrebird-${{ needs.extract-versions.outputs.lyrebird_ver }}.tar.gz | |
| tar xf lyrebird-lyrebird-${{ needs.extract-versions.outputs.lyrebird_ver }}.tar.gz | |
| cd lyrebird-lyrebird-${{ needs.extract-versions.outputs.lyrebird_ver }} | |
| CGO_ENABLED=1 go build -ldflags="-X main.lyrebirdVersion=${{ needs.extract-versions.outputs.lyrebird_ver }} -w -s" -v -o lyrebird ./cmd/lyrebird | |
| mkdir /out | |
| cp lyrebird /out | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: lyrebird-linux | |
| path: /out/lyrebird | |
| build-windows-arti: | |
| runs-on: ubuntu-latest | |
| container: rust:trixie | |
| needs: extract-versions | |
| steps: | |
| - name: Install dependencies | |
| run: | | |
| apt-get update -y | |
| apt-get install -y mingw-w64 | |
| rustup target add x86_64-pc-windows-gnu | |
| - name: Download and build | |
| run: | | |
| curl -LO https://gitlab.torproject.org/tpo/core/arti/-/archive/arti-v${{ needs.extract-versions.outputs.arti_ver }}/arti-arti-v${{ needs.extract-versions.outputs.arti_ver }}.tar.gz | |
| tar xf arti-arti-v${{ needs.extract-versions.outputs.arti_ver }}.tar.gz | |
| cd arti-arti-v${{ needs.extract-versions.outputs.arti_ver }} | |
| cargo build -p arti --locked --release --target x86_64-pc-windows-gnu --features static | |
| strip -s target/x86_64-pc-windows-gnu/release/arti.exe | |
| mkdir /out | |
| cp target/x86_64-pc-windows-gnu/release/arti.exe /out | |
| cp crates/arti/src/arti-example-config.toml /out | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: arti-windows | |
| path: | | |
| /out/arti.exe | |
| /out/arti-example-config.toml | |
| build-windows-lyrebird: | |
| runs-on: ubuntu-latest | |
| container: golang:trixie | |
| needs: extract-versions | |
| steps: | |
| - name: Download and build | |
| run: | | |
| curl -LO https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/lyrebird/-/archive/lyrebird-${{ needs.extract-versions.outputs.lyrebird_ver }}/lyrebird-lyrebird-${{ needs.extract-versions.outputs.lyrebird_ver }}.tar.gz | |
| tar xf lyrebird-lyrebird-${{ needs.extract-versions.outputs.lyrebird_ver }}.tar.gz | |
| cd lyrebird-lyrebird-${{ needs.extract-versions.outputs.lyrebird_ver }} | |
| GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-X main.lyrebirdVersion=${{ needs.extract-versions.outputs.lyrebird_ver }} -w -s" -v -o lyrebird.exe ./cmd/lyrebird | |
| mkdir /out | |
| cp lyrebird.exe /out | |
| - name: Upload artifacts | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: lyrebird-windows | |
| path: /out/lyrebird.exe | |
| release: | |
| runs-on: ubuntu-latest | |
| needs: [extract-versions, build-linux-arti, build-linux-lyrebird, build-windows-arti, build-windows-lyrebird] | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout repo | |
| uses: actions/checkout@v6 | |
| - name: Download artifacts | |
| uses: actions/download-artifact@v7 | |
| with: | |
| path: artifacts | |
| - name: Setup directories | |
| run: | | |
| mkdir dist | |
| mkdir -p linux/arti | |
| mkdir -p windows/arti | |
| - name: Create Linux distribution | |
| run: | | |
| cp artifacts/arti-linux/arti linux/arti | |
| cp artifacts/arti-linux/arti-example-config.toml linux/arti | |
| cp artifacts/lyrebird-linux/lyrebird linux/arti | |
| cp resources/include/arti-linux.toml linux/arti/arti.toml | |
| cp resources/include/start-arti linux/arti | |
| chmod 755 linux/arti/arti | |
| chmod 755 linux/arti/lyrebird | |
| chmod 755 linux/arti/start-arti | |
| cd linux | |
| tar czf ../dist/arti-linux.tar.gz arti --owner=0 --group=0 --numeric-owner | |
| - name: Create Windows distribution | |
| run: | | |
| cp artifacts/arti-windows/arti.exe windows/arti | |
| cp artifacts/arti-windows/arti-example-config.toml windows/arti | |
| cp artifacts/lyrebird-windows/lyrebird.exe windows/arti | |
| cp resources/include/arti-windows.toml windows/arti/arti.toml | |
| cp resources/include/start-arti.bat windows/arti | |
| cd windows | |
| zip -Xr ../dist/arti-windows.zip arti | |
| - name: Create Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| name: Arti ${{ needs.extract-versions.outputs.arti_ver }} | |
| files: | | |
| dist/arti-linux.tar.gz | |
| dist/arti-windows.zip |