diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml new file mode 100644 index 00000000..744072ba --- /dev/null +++ b/.github/workflows/build-release.yml @@ -0,0 +1,69 @@ +name: Cross Build and Release + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + workflow_dispatch: + +jobs: + setup: + runs-on: ubuntu-latest + strategy: + matrix: + target_arch: + - "mipsle-softfloat" + - "mipsle-hardfloat" + steps: + - name: Checkout Code + uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: '1.21' + + - name: Install Dependencies + run: | + sudo apt-get update + sudo apt-get install -y gcc-mips-linux-gnu gcc-arm-linux-gnueabihf + build: + runs-on: ubuntu-latest + strategy: + matrix: + target_arch: + - "mipsle-softfloat" + - "mipsle-hardfloat" + steps: + - name: Build + env: + # 直接基于已知格式设置 GOARCH 和 GOMIPS + GOARCH: ${{ contains(matrix.target_arch, 'mipsle') && 'mipsle' || '' }} + GOMIPS: ${{ contains(matrix.target_arch, 'softfloat') && 'softfloat' || 'hardfloat' }} + CGO_ENABLED: 0 + run: | + echo "Building for GOARCH=${GOARCH} GOMIPS=${GOMIPS}" + GOOS=linux go build -v -ldflags '-s -w' -o cloudflared-${{ matrix.target_arch }} ./cmd/cloudflared + release: + runs-on: ubuntu-latest + strategy: + matrix: + target_arch: + - "mipsle-softfloat" + - "mipsle-hardfloat" + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Generate SHA Sums + run: | + # 创建一个文件来存储 SHA 哈希值 + echo "Generating SHA sums for release assets..." + sha256sum cloudflared-${{ matrix.target_arch }} > SHA256_SUMS + cat SHA256_SUMS # 打印生成的 SHA 哈希值 + - name: Release + uses: softprops/action-gh-release@v2 + if: startsWith(github.ref, 'refs/tags/') + with: + files: | + SHA256_SUMS diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index a6bb3927..00000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,62 +0,0 @@ -name: Cross Build - -on: - push: - branches: [ "main" ] - pull_request: - branches: [ "main" ] - workflow_dispatch: - -jobs: - build: - runs-on: ubuntu-latest - strategy: - matrix: - target_arch: - - "mipsle-softfloat" - steps: - - name: Checkout Code - uses: actions/checkout@v4 - - - name: Set up Go - uses: actions/setup-go@v4 - with: - go-version: '1.21' - - - name: Install Dependencies - run: | - sudo apt-get update - sudo apt-get install -y gcc-mips-linux-gnu gcc-arm-linux-gnueabihf - - - name: Build - env: - # 直接基于已知格式设置 GOARCH 和 GOMIPS - GOARCH: ${{ contains(matrix.target_arch, 'mipsle') && 'mipsle' || '' }} - GOMIPS: ${{ contains(matrix.target_arch, 'softfloat') && 'softfloat' || '' }} - CGO_ENABLED: 0 - run: | - echo "Building for GOARCH=${GOARCH} GOMIPS=${GOMIPS}" - GOOS=linux go build -v -ldflags '-s -w' -o cloudflared-${{ matrix.target_arch }} ./cmd/cloudflared - - - name: Upload Artifact - uses: actions/upload-artifact@v4 - with: - name: cloudflared-${{ matrix.target_arch }} - path: cloudflared-${{ matrix.target_arch }} - - - name: Upload Release Assets - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ./artifacts/cloudflared-${{ matrix.target_arch }} - asset_name: cloudflared-${{ matrix.target_arch }} - asset_content_type: application/octet-stream - - - name: Trigger Release Workflow - if: success() - uses: benc-uk/workflow-dispatch@v1 - with: - workflow: create-release.yml # 你的发布工作流文件名 - token: ${{ secrets.TOKEN }} diff --git a/.github/workflows/sync-upstream.yml b/.github/workflows/sync-upstream.yml index 09d318e0..cd989352 100644 --- a/.github/workflows/sync-upstream.yml +++ b/.github/workflows/sync-upstream.yml @@ -36,5 +36,5 @@ jobs: - name: Trigger Build Workflow uses: benc-uk/workflow-dispatch@v1 with: - workflow: build.yml # 你的编译工作流文件名 + workflow: build-release.yml # 你的编译工作流文件名 token: ${{ secrets.TOKEN }}