最近我在改版自用的CF IP优选工具的时候,总得为所有的系统编译一遍版本。而Go编程语言的交叉编译特性,可以在自己的系统中编译出不同系统的版本。但是这个交叉编译的命令又臭又长。于是我就折磨起了GitHub Actions,开启了自动编译并发布文件之路

下面是Ubuntu编译环境下使用Go语言编译的示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
name: Build Test
on:
push:
branches:
- main
jobs:
Build:
name: Build Linux Version
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setting up Go
uses: actions/setup-go@v2
with:
go-version: 1.17
- name: Building
run: |
go build main.go
# 在此生成一个release文件夹,用来做接下来的打包成品使用
mkdir release
cp main release/main
- name: Uploading
uses: actions/upload-artifact@v1
with:
name: release_linux # 生成的压缩包名称
path: release # 需要打包的路径

如无意外,文件会在Actions编译完毕后生成在任务下方,可供下载。