mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-27 11:09:19 +02:00
CI: support including snapshots of FPC (x86_64-linux) from 'fixes_3_2' and 'main' branches with i386-win32 and x86_64-win64 cross-compilers to our build environment image
This commit is contained in:
parent
0de5404e17
commit
b804996b53
@ -1,6 +1,9 @@
|
||||
variables:
|
||||
FPC_OLDSTABLE_VER: 3.2.0
|
||||
FPC_STABLE_VER: 3.2.2
|
||||
FPC_FIXES_VER: 3.2.3
|
||||
FPC_MAIN_VER: 3.3.1
|
||||
|
||||
IMAGE_TAG: $CI_REGISTRY_IMAGE/debian11-x86-64:latest
|
||||
QT5PAS_SRC: lcl/interfaces/qt5/cbindings
|
||||
|
||||
@ -40,7 +43,12 @@ update-build-env: # This job updates building environment image. Run it if FPC
|
||||
- docker:dind
|
||||
script:
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
- docker build --pull --build-arg FPC_OLDSTABLE_VER=$FPC_OLDSTABLE_VER --build-arg FPC_STABLE_VER=$FPC_STABLE_VER -t $IMAGE_TAG - < Dockerfile.buildenv
|
||||
- docker build --pull
|
||||
--build-arg FPC_OLDSTABLE_VER=$FPC_OLDSTABLE_VER
|
||||
--build-arg FPC_STABLE_VER=$FPC_STABLE_VER
|
||||
--build-arg FPC_FIXES_VER=$FPC_FIXES_VER
|
||||
--build-arg FPC_MAIN_VER=$FPC_MAIN_VER
|
||||
-t $IMAGE_TAG - < Dockerfile.buildenv
|
||||
- docker push $IMAGE_TAG
|
||||
when: manual
|
||||
|
||||
|
@ -1,6 +1,9 @@
|
||||
FROM debian:11
|
||||
ARG FPC_STABLE_VER
|
||||
ARG FPC_OLDSTABLE_VER
|
||||
ARG FPC_FIXES_VER
|
||||
ARG FPC_MAIN_VER
|
||||
|
||||
RUN dpkg --add-architecture i386 && apt-get update && apt-get -y install \
|
||||
build-essential \
|
||||
libc6-dev-i386 \
|
||||
@ -12,13 +15,16 @@ RUN dpkg --add-architecture i386 && apt-get update && apt-get -y install \
|
||||
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
|
||||
# install compilers
|
||||
RUN tarballs=( \
|
||||
"$FPC_OLDSTABLE_VER fpc-$FPC_OLDSTABLE_VER-x86_64-linux" \
|
||||
"$FPC_STABLE_VER fpc-$FPC_STABLE_VER.x86_64-linux" \
|
||||
"https://sourceforge.net/projects/freepascal/files/Linux/$FPC_OLDSTABLE_VER/fpc-$FPC_OLDSTABLE_VER-x86_64-linux.tar fpc-$FPC_OLDSTABLE_VER-x86_64-linux" \
|
||||
"https://sourceforge.net/projects/freepascal/files/Linux/$FPC_STABLE_VER/fpc-$FPC_STABLE_VER.x86_64-linux.tar fpc-$FPC_STABLE_VER.x86_64-linux" \
|
||||
"https://gitlab.com/freepascal.org/fpc/build/-/jobs/artifacts/fixes_3_2/raw/fpc-$FPC_FIXES_VER.x86_64-linux.tar?job=build-job fpc-$FPC_FIXES_VER.x86_64-linux" \
|
||||
"https://gitlab.com/freepascal.org/fpc/build/-/jobs/artifacts/main/raw/fpc-$FPC_MAIN_VER.x86_64-linux.tar?job=build-job fpc-$FPC_MAIN_VER.x86_64-linux" \
|
||||
); \
|
||||
for tbl in "${tarballs[@]}"; do \
|
||||
tarball=($tbl); \
|
||||
wget https://sourceforge.net/projects/freepascal/files/Linux/${tarball[0]}/${tarball[1]}.tar; \
|
||||
wget --output-document=${tarball[1]}.tar ${tarball[0]}; \
|
||||
tar xf ${tarball[1]}.tar; \
|
||||
cd ${tarball[1]}; \
|
||||
echo -e "\n\n\n\n" | ./install.sh; \
|
||||
@ -26,18 +32,23 @@ RUN tarballs=( \
|
||||
exit 1; \
|
||||
fi; \
|
||||
cd ..; \
|
||||
rm -f ${tarball[1]}.tar; \
|
||||
rm -rf ${tarball[1]}; \
|
||||
rm -vf ${tarball[1]}.tar; \
|
||||
rm -vrf ${tarball[1]}; \
|
||||
done; \
|
||||
echo; \
|
||||
echo "Contents of /etc/fpc.cfg:"; \
|
||||
cat /etc/fpc.cfg; \
|
||||
# build and install cross-compilers
|
||||
tarballs=( \
|
||||
"$FPC_OLDSTABLE_VER fpc-$FPC_OLDSTABLE_VER.source tar.gz win32 i386" \
|
||||
"$FPC_OLDSTABLE_VER fpc-$FPC_OLDSTABLE_VER.source tar.gz win64 x86_64" \
|
||||
"$FPC_STABLE_VER fpc-$FPC_STABLE_VER.source tar.gz win32 i386" \
|
||||
"$FPC_STABLE_VER fpc-$FPC_STABLE_VER.source tar.gz win64 x86_64" \
|
||||
cat /etc/fpc.cfg;
|
||||
|
||||
# build and install cross-compilers
|
||||
RUN tarballs=( \
|
||||
"$FPC_OLDSTABLE_VER https://sourceforge.net/projects/freepascal/files/Source/$FPC_OLDSTABLE_VER fpc-$FPC_OLDSTABLE_VER source.tar.gz win32 i386" \
|
||||
"$FPC_OLDSTABLE_VER https://sourceforge.net/projects/freepascal/files/Source/$FPC_OLDSTABLE_VER fpc-$FPC_OLDSTABLE_VER source.tar.gz win64 x86_64" \
|
||||
"$FPC_STABLE_VER https://sourceforge.net/projects/freepascal/files/Source/$FPC_STABLE_VER fpc-$FPC_STABLE_VER source.tar.gz win32 i386" \
|
||||
"$FPC_STABLE_VER https://sourceforge.net/projects/freepascal/files/Source/$FPC_STABLE_VER fpc-$FPC_STABLE_VER source.tar.gz win64 x86_64" \
|
||||
"$FPC_FIXES_VER https://gitlab.com/freepascal.org/fpc/source/-/archive/fixes_3_2 source-fixes_3_2 tar.gz win32 i386" \
|
||||
"$FPC_FIXES_VER https://gitlab.com/freepascal.org/fpc/source/-/archive/fixes_3_2 source-fixes_3_2 tar.gz win64 x86_64" \
|
||||
"$FPC_MAIN_VER https://gitlab.com/freepascal.org/fpc/source/-/archive/main source-main tar.gz win32 i386" \
|
||||
"$FPC_MAIN_VER https://gitlab.com/freepascal.org/fpc/source/-/archive/main source-main tar.gz win64 x86_64" \
|
||||
); \
|
||||
# downloading, building and tarball removal are done in separate steps,
|
||||
# because several targets can be built from one source
|
||||
@ -45,11 +56,11 @@ RUN tarballs=( \
|
||||
# download sources
|
||||
for tbl in "${tarballs[@]}"; do \
|
||||
tarball=($tbl); \
|
||||
if [ ! -f ${tarball[1]}.${tarball[2]} ]; then \
|
||||
wget https://sourceforge.net/projects/freepascal/files/Source/${tarball[0]}/${tarball[1]}.${tarball[2]}; \
|
||||
if [ ! -f ${tarball[2]}.${tarball[3]} ]; then \
|
||||
wget ${tarball[1]}/${tarball[2]}.${tarball[3]}; \
|
||||
fi; \
|
||||
if [ ! -d fpc-${tarball[0]} ]; then \
|
||||
tar zxf ${tarball[1]}.${tarball[2]}; \
|
||||
if [ ! -d ${tarball[2]} ]; then \
|
||||
tar zxf ${tarball[2]}.${tarball[3]}; \
|
||||
fi; \
|
||||
if [ $? -ne 0 ]; then \
|
||||
exit 1; \
|
||||
@ -58,9 +69,9 @@ RUN tarballs=( \
|
||||
# build and install cross-compilers
|
||||
for tbl in "${tarballs[@]}"; do \
|
||||
tarball=($tbl); \
|
||||
cd fpc-${tarball[0]}; \
|
||||
make all FPC=/usr/lib/fpc/${tarball[0]}/ppcx64 OS_TARGET=${tarball[3]} CPU_TARGET=${tarball[4]}; \
|
||||
make crossinstall FPC=/usr/lib/fpc/${tarball[0]}/ppcx64 OS_TARGET=${tarball[3]} CPU_TARGET=${tarball[4]} INSTALL_PREFIX=/usr; \
|
||||
cd ${tarball[2]}; \
|
||||
make all FPC=/usr/lib/fpc/${tarball[0]}/ppcx64 OS_TARGET=${tarball[4]} CPU_TARGET=${tarball[5]}; \
|
||||
make crossinstall FPC=/usr/lib/fpc/${tarball[0]}/ppcx64 OS_TARGET=${tarball[4]} CPU_TARGET=${tarball[5]} INSTALL_PREFIX=/usr; \
|
||||
if [ $? -ne 0 ]; then \
|
||||
exit 1; \
|
||||
fi; \
|
||||
@ -69,6 +80,6 @@ RUN tarballs=( \
|
||||
# remove sources
|
||||
for tbl in "${tarballs[@]}"; do \
|
||||
tarball=($tbl); \
|
||||
rm -f ${tarball[1]}.${tarball[2]}; \
|
||||
rm -rf fpc-${tarball[0]}; \
|
||||
rm -vf ${tarball[2]}.${tarball[3]}; \
|
||||
rm -vrf ${tarball[2]}; \
|
||||
done;
|
||||
|
Loading…
Reference in New Issue
Block a user