diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index cdb72d2a..d2327093 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -7,20 +7,29 @@ on: tags: - '**' workflow_dispatch: - inputs: - tag: - description: 'Manual build tag' - required: false - default: 'manual' permissions: contents: read jobs: build: - name: Build and Package FRP + name: Build FRP ${{ matrix.goos }}-${{ matrix.goarch }} runs-on: ubuntu-latest + strategy: + matrix: + goos: [linux, windows, darwin, freebsd, openbsd, android] + goarch: [amd64, arm, arm64] + exclude: + - goos: darwin + goarch: arm + - goos: freebsd + goarch: arm + - goos: openbsd + goarch: arm + - goos: android + goarch: amd64 + steps: - name: Checkout source uses: actions/checkout@v4 @@ -32,18 +41,56 @@ jobs: with: go-version: '1.22' - - name: Set up dependencies + - name: Install dependencies run: | sudo apt-get update -y - sudo apt-get install -y zip make gcc g++ upx + sudo apt-get install -y zip tar make gcc g++ upx - - name: Run build script + - name: Build FRP for ${{ matrix.goos }}-${{ matrix.goarch }} run: | - chmod +x ./package.sh - ./package.sh + mkdir -p release/packages - - name: Upload build artifacts + echo "Building for ${{ matrix.goos }}-${{ matrix.goarch }}" + + # 构建版本号 + make + version=$(./bin/frps --version) + echo "Detected version: $version" + + export GOOS=${{ matrix.goos }} + export GOARCH=${{ matrix.goarch }} + export CGO_ENABLED=0 + + # 构建可执行文件 + make frpc frps + + out_dir="release/packages/frp_${version}_${{ matrix.goos }}_${{ matrix.goarch }}" + mkdir -p "$out_dir" + + if [ "${{ matrix.goos }}" = "windows" ]; then + mv ./bin/frpc.exe "$out_dir/frpc.exe" + mv ./bin/frps.exe "$out_dir/frps.exe" + else + mv ./bin/frpc "$out_dir/frpc" + mv ./bin/frps "$out_dir/frps" + fi + + cp LICENSE "$out_dir" + cp -f conf/frpc.toml "$out_dir" + cp -f conf/frps.toml "$out_dir" + + cd release/packages + if [ "${{ matrix.goos }}" = "windows" ]; then + zip -rq frp_${version}_${{ matrix.goos }}_${{ matrix.goarch }}.zip frp_${version}_${{ matrix.goos }}_${{ matrix.goarch }} + else + tar -zcf frp_${version}_${{ matrix.goos }}_${{ matrix.goarch }}.tar.gz frp_${version}_${{ matrix.goos }}_${{ matrix.goarch }} + fi + cd ../../ + + - name: Upload artifact uses: actions/upload-artifact@v3 with: - name: frp-packages - path: release/packages \ No newline at end of file + name: frp_${{ matrix.goos }}_${{ matrix.goarch }} + path: | + release/packages/frp_* + retention-days: 7 \ No newline at end of file