diff --git a/.github/workflows/cli.yml b/.github/workflows/cli.yml new file mode 100644 index 000000000..c914c907e --- /dev/null +++ b/.github/workflows/cli.yml @@ -0,0 +1,80 @@ +name: GoFrame CLI Build Release + +on: + push: + # Sequence of patterns matched against refs/tags + tags: + - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 + + branches: + - develop + +jobs: + build: + name: Build And Release + runs-on: ubuntu-latest + steps: + - name: Checkout Github Code + uses: actions/checkout@v2 + + - name: Set Up Golang Environment + uses: actions/setup-go@v2 + with: + go-version: 1.17 + + - name: Build CLI Binary + run: | + echo "Building linux amd64 binary..." + cd cmd/gf + GOOS=linux GOARCH=amd64 go build main.go + chmod +x main + ./main install -y + + # gf build + - name: Build CLI Binary For All Platform + run: | + cd cmd/gf + gf build main.go -n gf -a all -s all + + # 处理gf-cli批量编译后的文件结构 + - name: Move Files Before Upx + run: | + cd cmd/gf/bin + for OS in *;do for FILE in $OS/*;\ + do if [[ ${OS} =~ 'windows' ]];\ + then rm -rf noupx && mkdir noupx && mv $FILE noupx/gf_$OS.exe && rm -rf $OS;\ + else mv $FILE gf_$OS && rm -rf $OS;\ + fi;done;done + + # UPX 加壳所有文件 + - name: Upx All Binary + uses: gacts/upx@master + with: + dir: 'cmd/gf/bin' + upx_args: '-9' + + # 移动未UPX的windows程序到上传bin目录下 + - name: Move Files After Upx + run: | + cd cmd/gf/bin + mv noupx/* ./ && rm -rf noupx + ls -l + + - name: Create Github Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: GoFrame CLI Release ${{ github.ref }} + draft: false + prerelease: false + + - name: Upload Release Asset + id: upload-release-asset + uses: alexellis/upload-assets@0.2.2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + asset_paths: '["cmd/gf/bin/gf_*"]' diff --git a/.github/workflows/go.yml b/.github/workflows/gf.yml similarity index 100% rename from .github/workflows/go.yml rename to .github/workflows/gf.yml