Skip to content

U: workflows - build test #17

U: workflows - build test

U: workflows - build test #17

Workflow file for this run

name: build
on:
push:
branches: [ "main" ]
# tags:
# - 'v*.*.*'
jobs:
# windows 64
windows-64:
runs-on: ${{ matrix.operating-system }}
strategy:
matrix:
operating-system: [ windows-2019 ]
lazarus-versions: [ 3.2 ]
steps:
- uses: actions/checkout@v4
# 创建构建后的liblcl二进制压缩包存放目录和设置git仓库
- name: Config liblcl
run: |
mkdir D:\liblclbinary
git config --global --add safe.directory .\
git fetch
# Laz 环境
- name: Lazarus Build Environment
uses: sxmxta/[email protected]
with:
lazarus-version: ${{ matrix.lazarus-versions }}
with-cache: false
# 编译 liblcl support windows7 64 :default
- name: Build Branch main To (liblcl.Windows64)
run: |
git clean -xdf
# git checkout origin/main
.\shell\add-package.bat
lazbuild.exe -B --bm=Win64 "src/liblcl.lpi"
7z a D:\liblclbinary\liblcl.Windows64.zip $HOME\golcl\liblcl.dll
# 编译 liblcl support windows7 64
- name: Build Branch 109.1.18 To (liblcl-109.Windows64)
run: |
git clean -xdf
git checkout origin/109.1.18
.\shell\add-package.bat
lazbuild.exe -B --bm=Win64 "src/liblcl.lpi"
7z a D:\liblclbinary\liblcl-109.Windows64.zip $HOME\golcl\liblcl.dll
# 编译 liblcl support flash
- name: Build Branch Flash-89.0.18 To (liblcl-87.Windows64)
run: |
git clean -xdf
git checkout origin/Flash-89.0.18
.\shell\add-package.bat
lazbuild.exe -B --bm=Win64 "src/liblcl.lpi"
7z a D:\liblclbinary\liblcl-87.Windows64.zip $HOME\golcl\liblcl.dll
# ------------------------------------------------------------------------------------------
# windows 32
windows-32:
runs-on: ${{ matrix.operating-system }}
strategy:
matrix:
operating-system: [ windows-2019 ]
lazarus-versions: [ 3.2 ]
steps:
- uses: actions/checkout@v4
# 创建构建后的liblcl二进制压缩包存放目录和设置git仓库
- name: Config liblcl
run: |
mkdir D:\liblclbinary
git config --global --add safe.directory .\
git fetch
# Laz 环境
- name: Lazarus Build Environment
uses: sxmxta/[email protected]
with:
lazarus-version: ${{ matrix.lazarus-versions }}
with-cache: false
os-arch: i386
# 编译 liblcl support windows 32 :default
- name: Build Branch main for (liblcl.Windows32)
run: |
git clean -xdf
# git checkout origin/main
.\shell\add-package.bat
lazbuild.exe -B --bm=Win32 "src/liblcl.lpi"
7z a "D:\liblclbinary\liblcl.Windows32.zip" "$HOME\golcl\liblcl.dll"
# 编译 liblcl support windows7 32
- name: Build Branch 109.1.18 for (liblcl-109.Windows32)
run: |
git clean -xdf
git checkout origin/109.1.18
.\shell\add-package.bat
lazbuild.exe -B --bm=Win32 "src/liblcl.lpi"
7z a "D:\liblclbinary\liblcl-109.Windows32.zip" "$HOME\golcl\liblcl.dll"
# 编译 liblcl support flash
- name: Build Branch Flash-89.0.18 for (liblcl-87.Windows32)
run: |
git clean -xdf
git checkout origin/Flash-89.0.18
.\shell\add-package.bat
lazbuild.exe -B --bm=Win32 "src/liblcl.lpi"
7z a "D:\liblclbinary\liblcl-87.Windows32.zip" "$HOME\golcl\liblcl.dll"
# ------------------------------------------------------------------------------------------
# linux
linux-amd64:
runs-on: ${{ matrix.operating-system }}
strategy:
matrix:
operating-system: [ ubuntu-20.04 ]
lazarus-versions: [ 3.2 ]
steps:
- uses: actions/checkout@v4
# 创建构建后的liblcl二进制压缩包存放目录和设置git仓库
# 同时构建所有 linux amd64
- name: Config liblcl
run: |
mkdir $RUNNER_WORKSPACE/liblclbinary
git config --global --add safe.directory ./
git fetch
chmod +x ./shell/add-package.sh
sudo apt-get install libgtk-3-dev
# Laz 环境
- name: Lazarus Build Environment
uses: sxmxta/[email protected]
with:
lazarus-version: ${{ matrix.lazarus-versions }}
with-cache: false
# 编译 liblcl support Gtk3 :default
- name: Build Branch main for (liblcl.Linux64)
run: |
git clean -xdf
# git checkout origin/main
./shell/add-package.sh
lazbuild -B --bm=Linux64 --ws=gtk3 "src/liblcl.lpi"
zip -j $RUNNER_WORKSPACE/liblclbinary/liblcl.Linux64.zip $HOME/golcl/liblcl.so
# 编译 liblcl support Gtk2
- name: Build Branch GTK2-106.1.1 for (liblcl-106.Linux64)
run: |
git clean -xdf
git checkout origin/GTK2-106.1.1
./shell/add-package.sh
lazbuild -B --bm=Linux64 --ws=gtk2 "src/liblcl.lpi"
zip -j $RUNNER_WORKSPACE/liblclbinary/liblcl-106.Linux64.zip $HOME/golcl/liblcl.so
# 编译 liblcl support flash
- name: Build Branch Flash-89.0.18 for (liblcl-87.Linux64)
run: |
git clean -xdf
git checkout origin/Flash-89.0.18
./shell/add-package.sh
lazbuild -B --bm=Linux64 --ws=gtk2 "src/liblcl.lpi"
zip -j $RUNNER_WORKSPACE/liblclbinary/liblcl-87.Linux64.zip $HOME/golcl/liblcl.so
# ------------------------------------------------------------------------------------------
# macos 当前使用 laz 2.2.6 构建
macos-amd-arm64:
runs-on: ${{ matrix.operating-system }}
strategy:
matrix:
operating-system: [ macos-12 ]
lazarus-versions: [ 3.2 ]
steps:
- uses: actions/checkout@v4
# 创建构建后的liblcl二进制压缩包存放目录和设置git仓库
- name: Config liblcl
run: |
mkdir $RUNNER_WORKSPACE/liblclbinary
git config --global --add safe.directory ./
git fetch
chmod +x ./shell/add-package.sh
# Laz 环境
- name: Lazarus Build Environment
uses: sxmxta/[email protected]
with:
lazarus-version: ${{ matrix.lazarus-versions }}
with-cache: false
# MacOS 给 Laz 执行权限
- name: Lazarus Execution Permissions
run: |
sudo chown -R ${USER}:admin /Applications/Lazarus
ls -la /Applications/Lazarus
# 编译 liblcl :default
- name: Build Branch main for (liblcl.MacOSX64)
run: |
git clean -xdf
# git checkout origin/main
./shell/add-package.sh
sudo lazbuild -B --bm="MacOS64(cocoa)" --ws=cocoa "src/liblcl.lpi"
zip -j $RUNNER_WORKSPACE/liblclbinary/liblcl.MacOSX64.zip $HOME/golcl/liblcl.dylib
sudo rm -rf $HOME/golcl/liblcl.dylib
- name: Build Branch main for (liblcl.MacOS(arm64))
run: |
sudo lazbuild -B --bm="MacOS64(cocoa)ARM64" --ws=cocoa "src/liblcl.lpi"
zip -j $RUNNER_WORKSPACE/liblclbinary/liblcl.MacOSARM64.zip $HOME/golcl/liblcl.dylib
sudo rm -rf $HOME/golcl/liblcl.dylib
# 编译 liblcl support flash
- name: Build Branch Flash-89.0.18 for (liblcl-87.MacOSX)
run: |
git clean -xdf
git checkout origin/Flash-89.0.18
./shell/add-package.sh
sudo lazbuild -B --bm="MacOS64(cocoa)" --ws=cocoa "src/liblcl.lpi"
zip -j $RUNNER_WORKSPACE/liblclbinary/liblcl-87.MacOSX.zip $HOME/golcl/liblcl.dylib
sudo rm -rf $HOME/golcl/liblcl.dylib
# 编译 liblcl support flash
- name: Build Branch Flash-89.0.18 for (liblcl-87.MacOS(arm64))
run: |
sudo lazbuild -B --bm="MacOS64(cocoa)ARM64" --ws=cocoa "src/liblcl.lpi"
zip -j $RUNNER_WORKSPACE/liblclbinary/liblcl-87.MacOSARM64.zip $HOME/golcl/liblcl.dylib
sudo rm -rf $HOME/golcl/liblcl.dylib
# ------------------------------------------------------------------------------------------
# linux-aarch64
linux-aarch64:
runs-on: ${{ matrix.operating-system }}
name: Build on ${{ matrix.distro }} ${{ matrix.arch }}
strategy:
matrix:
operating-system: [ ubuntu-20.04 ]
lazarus-versions: [ 3.2 ]
include:
- arch: aarch64
distro: ubuntu18.04
steps:
- uses: actions/checkout@v4
- name: Config liblcl
run: |
mkdir $RUNNER_WORKSPACE/liblclbinary
# Laz 环境
- name: Lazarus Install Environment
uses: sxmxta/[email protected]
with:
lazarus-version: ${{ matrix.lazarus-versions }}
with-cache: false
os-arch: arm64
# arch
- uses: uraimo/run-on-arch-action@v2
name: Container Build Lazarus
id: build
with:
arch: ${{ matrix.arch }}
distro: ${{ matrix.distro }}
# 不需要,但可加快构建速度
githubToken: ${{ github.token }}
# 创建工件目录app
#setup: |
# mkdir -p "$RUNNER_TEMP/app"
# 将目录装载为容器中的/app
dockerRunArgs: |
--volume "$RUNNER_WORKSPACE:/app"
# 将一些环境变量传递到容器
# env: |
# artifact_name: git-${{ matrix.distro }}_${{ matrix.arch }}
# 在容器中运行命令的shell
shell: /bin/sh
#在容器中安装一些依赖项。如果
#您也在使用githubToken。此处安装的任何依赖项都将
#是缓存的容器映像的一部分,因此后续
#构建不必重新安装它们。缓存图像层
#在项目的包存储库中公开,因此
#容器状态或日志中不存在机密。
install: |
case "${{ matrix.distro }}" in
ubuntu*)
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
;;
esac
# run 要在容器中运行的命令,复制git文件到挂载的目录中
run: |
#-- run 此处是在容器内运行命令,在--volume挂载了宿主机的工作目录为/app目录
#-- 脚本赋予执行权限
chmod +x /app/liblcl/shell/add-package-container.sh
chmod +x /app/liblcl/shell/build-linux.sh
#-- 进入fpc目录开始编译laz
cd /app/lazarus/fpc-3.2.2.aarch64-linux
#-- 执行安装fpc, esxu跳过用户交互输入
./install.sh <<esxu
esxu
#-- 返回上级目录make lazarus
cd ../
#-- 构建laz, 得到完整的lazarus, 使用lazbuild构建liblcl /app/lazarus/lazbuild
make clean all
#-- 开始编译liblcl
cd /app/liblcl
echo "ls -al"
ls -al
#-- 参数: $1:指定分枝 $2:arch $3:lazarus base dir
#-- 构建 support Gtk3 :default
./shell/build-linux.sh "main" "arm64"
#-- 构建 liblcl support Gtk2
./shell/build-linux.sh "GTK2-106.1.1" "arm64"
#-- 构建 liblcl support Flash
./shell/build-linux.sh "Flash-89.0.18" "arm64"