Build Linux In Docker #9
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Linux In Docker | |
on: | |
workflow_dispatch: | |
# push: | |
# tags: | |
# - 'v*.*.*' | |
jobs: | |
linux-arm: | |
runs-on: ${{ matrix.operating-system }} | |
name: Build on ${{ matrix.distro }} ${{ matrix.arch }} | |
strategy: | |
matrix: | |
operating-system: [ ubuntu-20.04 ] | |
lazarus-versions: [ 3.6 ] | |
include: | |
- arch: aarch64 | |
distro: ubuntu:18.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Config Base Environment # 配置基础环境 | |
run: | | |
mkdir $RUNNER_WORKSPACE/bins | |
mv ./.github/shell $RUNNER_WORKSPACE/shell | |
chmod +x $RUNNER_WORKSPACE/shell/add-package.sh | |
chmod +x $RUNNER_WORKSPACE/shell/build-lib-in-linux-docker.sh | |
- name: Install Lazarus Environment # Install Lazarus | |
uses: energye/[email protected] | |
with: | |
lazarus-version: ${{ matrix.lazarus-versions }} | |
source-install: true | |
os-arch: aarch64 | |
- name: Container Build Lazarus | |
uses: uraimo/run-on-arch-action@v2 | |
id: build | |
with: | |
arch: none | |
distro: none | |
base_image: ${{ matrix.arch }}/${{ matrix.distro }} # 因为没有amd架构,所以手动指定基础镜像 | |
githubToken: ${{ github.token }} # 不需要,但可加快构建速度 | |
dockerRunArgs: | # 将目录装载为容器中的/app | |
--volume "$RUNNER_WORKSPACE:/app" | |
shell: /bin/sh # 在容器中运行命令的shell | |
install: | #在容器中安装一些依赖项 | |
apt-get update -q -y | |
apt-get install -q -y git | |
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 | |
run: | # run 要在容器中运行的命令,复制git文件到挂载的目录中 | |
pwd | |
echo "Operating System Info =============================================" | |
ls -al /app | |
uname -m | |
uname -r | |
uname -s | |
pkg-config --modversion gtk+-2.0 | |
pkg-config --modversion gtk+-3.0 | |
ldd --version | |
cat /etc/os-release | |
echo "Build fpc =============================================" | |
cd /app/lazarus/fpc-3.2.2.aarch64-linux | |
ls -al | |
./install.sh <<esxu | |
esxu | |
echo "Build lazarus =============================================" | |
cd ../ | |
make clean all | |
objdump -p /app/lazarus/lazbuild | |
echo "Run Build shell =============================================" | |
/app/shell/build-lib-in-linux-docker.sh LinuxARM64 gtk2 main liblcl.LinuxARM64.zip | |
/app/shell/build-lib-in-linux-docker.sh LinuxARM64_GTK3 gtk3 main liblcl-GTK3.LinuxARM64.zip | |
/app/shell/build-lib-in-linux-docker.sh LinuxARM64 gtk3 109.1.18 liblcl-109-GTK3.LinuxARM64.zip | |
/app/shell/build-lib-in-linux-docker.sh LinuxARM64 gtk2 101.0.18 liblcl-101.LinuxARM64.zip | |
/app/shell/build-lib-in-linux-docker.sh LinuxARM64 gtk2 Flash-89.0.18 liblcl-89.LinuxARM64.zip | |
- name: Build Dynamic library LCL END | |
run: | | |
ls -l $RUNNER_WORKSPACE/bins | |
- name: Release # 将二进制文件上传到发布tags | |
uses: softprops/action-gh-release@v2 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: ../bins/** |