From 20c1430bfb4ecf8af5aa361e34157a7c265d89e8 Mon Sep 17 00:00:00 2001 From: Hellojack <106379370+H1JK@users.noreply.github.com> Date: Tue, 30 Aug 2022 19:45:31 +0800 Subject: [PATCH] Create release.yml --- .github/workflows/release.yml | 128 ++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..fc1f496 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,128 @@ +name: Release + +on: + release: + types: [prereleased] + +jobs: + build: + strategy: + matrix: + # Include amd64 on all platforms. + goos: [windows, freebsd, openbsd, linux, dragonfly, darwin] + goarch: [amd64, 386] + exclude: + # Exclude i386 on darwin and dragonfly. + - goarch: 386 + goos: dragonfly + - goarch: 386 + goos: darwin + include: + # BEGIN Linux ARM 5 6 7 + - goos: linux + goarch: arm + goarm: 7 + - goos: linux + goarch: arm + goarm: 6 + - goos: linux + goarch: arm + goarm: 5 + # END Linux ARM 5 6 7 + # BEGIN Windows ARM 7 + - goos: windows + goarch: arm + goarm: 7 + # END Windows ARM 7 + # BEGIN FreeBSD ARM 6 7 + - goos: freebsd + goarch: arm + goarm: 6 + - goos: freebsd + goarch: arm + goarm: 7 + # END FreeBSD ARM 6 7 + # BEGIN OpenBSD ARM 6 7 + - goos: openbsd + goarch: arm + goarm: 6 + - goos: openbsd + goarch: arm + goarm: 7 + # END OpenBSD ARM 6 7 + # BEGIN Other architectures + - goos: darwin + goarch: arm64 + - goos: linux + goarch: arm64 + - goos: linux + goarch: riscv64 + - goos: windows + goarch: arm64 + - goos: android + goarch: arm64 + - goos: freebsd + goarch: arm64 + - goos: openbsd + goarch: arm64 + # BEGIN MIPS + - goos: linux + goarch: mips64 + - goos: linux + goarch: mips64le + - goos: linux + goarch: mipsle + - goos: linux + goarch: mips + # END MIPS + # END Other architectures + fail-fast: false + + runs-on: ubuntu-latest + env: + GOOS: ${{ matrix.goos }} + GOARCH: ${{ matrix.goarch }} + GOARM: ${{ matrix.goarm }} + CGO_ENABLED: 0 + + steps: + - name: Checkout codebase + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Set up Go + uses: actions/setup-go@v3 + with: + go-version: ^1.19 + + - name: Get project dependencies + run: go mod download + + - name: Build + run: | + mkdir -p build_assets + go test -c -v -o build_assets/CryptoTestGO-${{ matrix.goos }}-${{ matrix.goarch }}-${{ matrix.goarm }} -trimpath -ldflags "-s -w -buildid=" ./... + - name: Rename Windows V2Ray + if: matrix.goos == 'windows' + run: | + cd ./build_assets || exit 1 + mv CryptoTestGO-${{ matrix.goos }}-${{ matrix.goarch }}-${{ matrix.goarm }} CryptoTestGO-${{ matrix.goos }}-${{ matrix.goarch }}-${{ matrix.goarm }}.exe + + - name: Upload files to GitHub release (Windows) + uses: svenstaro/upload-release-action@v2 + if: matrix.goos == 'windows' + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file_glob: true + file: ./build_assets/CryptoTestGO-${{ matrix.goos }}-${{ matrix.goarch }}-${{ matrix.goarm }}.exe + tag: ${{ github.ref }} + + - name: Upload files to GitHub release (Others) + uses: svenstaro/upload-release-action@v2 + if: matrix.goos != 'windows' + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file_glob: true + file: ./build_assets/CryptoTestGO-${{ matrix.goos }}-${{ matrix.goarch }}-${{ matrix.goarm }} + tag: ${{ github.ref }}