mirror of
https://gitee.com/johng/gf
synced 2026-07-03 11:51:04 +08:00
CI update
This commit is contained in:
80
.github/workflows/cli.yml
vendored
Normal file
80
.github/workflows/cli.yml
vendored
Normal file
@ -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_*"]'
|
||||
Reference in New Issue
Block a user