-
Notifications
You must be signed in to change notification settings - Fork 0
101 lines (79 loc) · 3.46 KB
/
energy-build-package_linux_test.yml
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
name: Energy Build and Package Linux Test
on:
workflow_dispatch:
jobs:
Linux-armv7l:
runs-on: ${{ matrix.operating-system }}
strategy:
matrix:
operating-system: [ ubuntu-20.04 ]
include:
- arch: armv7
distro: bullseye
steps:
- uses: actions/checkout@v4
- name: Config Base Environment # 配置基础环境
run: |
mkdir $RUNNER_WORKSPACE/install
mkdir $RUNNER_WORKSPACE/energy
mv ./.github/shell $RUNNER_WORKSPACE/shell
chmod -R +x $RUNNER_WORKSPACE/shell
- name: Container Build and Package
uses: uraimo/run-on-arch-action@v2
id: build
with:
arch: ${{ matrix.arch }}
distro: ${{ matrix.distro }}
githubToken: ${{ github.token }} # 不需要,但可加快构建速度
dockerRunArgs: | # 挂载目录 固定 /app
--volume "$RUNNER_WORKSPACE:/app"
env: | # 必须预配置环境变量
ENERGY_FRAMEWORK: CEF-101_LINUX_ARMv7
GoVer: go1.20.14.linux-armv6l.tar.gz
CEFVer: 101.0.18
LibLCLVer: 2.5.0
GOARM: 7
shell: /bin/bash # 在容器中运行命令的shell
install: | #在容器中安装一些依赖项
apt-get update -q -y
apt-get install -q -y git wget curl p7zip-full
apt-get install -q -y make binutils build-essential gdb subversion zip unzip libx11-dev libgtk2.0-dev libgdk-pixbuf2.0-dev libcairo2-dev libpango1.0-dev libgtk-3-dev
apt-get install -q -y gcc-arm-linux-gnueabihf
# run 在容器中运行的命令
# 这个和其它的有些不同,使用 energy 主仓库 demo 示例构建
# 使用 sh + cli 安装 energy 环境
run: |
uname -a
arm-linux-gnueabihf-gcc -v
# 1. 预设置全局Go环境变量
export GOBIN=/app/go/bin
export PATH=$PATH:/app/go/bin
# 2. 安装当前系统架构的 Golang, https://golang.google.cn/dl/
/app/shell/install-go.sh $GoVer
# 3. 安装 energy cli
/app/shell/install-energy.sh
# 4. 安装 EnergyFramework, 该脚本 有3个参数, 1: CEF 版本, 2: liblcl 版本, 3: 可选 "" 或 gtk3
# CEF: https://sourceforge.net/projects/liblcl/files/CEF
# LibLCL: https://sourceforge.net/projects/liblcl/files
/app/shell/install-energy-framework.sh $CEFVer $LibLCLVer
# 5. 手动配置 Framework 开发环境到 .energy
energy env -w root:/app/
energy env -w framework:$ENERGY_FRAMEWORK
energy env
# 6. 开始构建和打包项目
cd /app/energy/examples/demo
go env -w GOFLAGS=-buildvcs=false
go mod tidy
energy build -o demo
file demo
energy package -f demo -o demo-linuxarmv7l.deb
# 7. 将安装包移动到 /app/install 目录
mv /app/energy/examples/demo/build/linux/demo-linuxarmv7l.deb /app/install
- name: Build and Package END
run: |
ls -l $RUNNER_WORKSPACE/install
- name: Release Dynamic library # 版本发布上传liblcl二进制
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
files: ../install/**