mirror of
https://gitee.com/johng/gf
synced 2026-06-06 16:21:40 +08:00
82 lines
2.1 KiB
YAML
82 lines
2.1 KiB
YAML
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
|
|
|
|
env:
|
|
TZ: Asia/Shanghai
|
|
|
|
|
|
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_*"]'
|