Skip to content

Build Linux In Docker #9

Build Linux In Docker

Build Linux In Docker #9

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/**