mirror of
https://git.suyu.dev/suyu/ci-docker.git
synced 2025-12-21 21:36:02 +01:00
Progress...
This commit is contained in:
parent
9a8431a1de
commit
406151251b
5 changed files with 87 additions and 7 deletions
|
|
@ -8,8 +8,8 @@ build linux x64:
|
||||||
- docker:dind
|
- docker:dind
|
||||||
script:
|
script:
|
||||||
- echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER $CI_REGISTRY --password-stdin
|
- echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER $CI_REGISTRY --password-stdin
|
||||||
- docker build -f Dockerfile-linux -t ${CI_REGISTRY_IMAGE}:linux-x86 .
|
- docker build -f Dockerfile-linux -t ${CI_REGISTRY_IMAGE}:linux-x64 .
|
||||||
- docker push ${CI_REGISTRY_IMAGE}:linux-x86
|
- docker push ${CI_REGISTRY_IMAGE}:linux-x64
|
||||||
|
|
||||||
build windows x64:
|
build windows x64:
|
||||||
stage: build
|
stage: build
|
||||||
|
|
@ -18,5 +18,5 @@ build windows x64:
|
||||||
- docker:dind
|
- docker:dind
|
||||||
script:
|
script:
|
||||||
- echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER $CI_REGISTRY --password-stdin
|
- echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER $CI_REGISTRY --password-stdin
|
||||||
- docker build -f Dockerfile-windows -t ${CI_REGISTRY_IMAGE}:windows-x86 .
|
- docker build -f Dockerfile-windows -t ${CI_REGISTRY_IMAGE}:windows-x64 .
|
||||||
- docker push ${CI_REGISTRY_IMAGE}:windows-x86
|
- docker push ${CI_REGISTRY_IMAGE}:windows-x64
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,16 @@
|
||||||
FROM debian:trixie
|
FROM debian:trixie
|
||||||
|
COPY windows.sh /tmp/setup.sh
|
||||||
|
COPY windows.reg /tmp/setup.reg
|
||||||
RUN apt-get update --yes \
|
RUN apt-get update --yes \
|
||||||
&& apt-get -y install wget \
|
&& apt-get -y install wget unzip xvfb \
|
||||||
&& dpkg --add-architecture i386 \
|
&& dpkg --add-architecture i386 \
|
||||||
&& mkdir -pm755 /etc/apt/keyrings \
|
&& mkdir -pm755 /etc/apt/keyrings \
|
||||||
&& wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key \
|
&& wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key \
|
||||||
&& wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/trixie/winehq-trixie.sources \
|
&& wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/trixie/winehq-trixie.sources \
|
||||||
&& apt-get update \
|
&& apt-get update \
|
||||||
&& apt-get -y install winehq-stable \
|
&& apt-get -y install winehq-devel \
|
||||||
&& apt-get clean \
|
&& apt-get clean \
|
||||||
&& wine winecfg
|
&& export WINEDEBUG=-all \
|
||||||
|
&& wine winecfg \
|
||||||
|
&& /tmp/setup.sh \
|
||||||
|
&& wineserver -k
|
||||||
|
|
|
||||||
1
test.bat
Normal file
1
test.bat
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
set 1=hello
|
||||||
BIN
windows.reg
Normal file
BIN
windows.reg
Normal file
Binary file not shown.
74
windows.sh
Executable file
74
windows.sh
Executable file
|
|
@ -0,0 +1,74 @@
|
||||||
|
#! /bin/bash
|
||||||
|
echo
|
||||||
|
|
||||||
|
# Exit on error, rather than continuing with the rest of the script
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Utility functions
|
||||||
|
function min {
|
||||||
|
echo $(( $1 > $2 ? $2 : $1 ))
|
||||||
|
}
|
||||||
|
|
||||||
|
# Leave wineserver running in the background
|
||||||
|
setsid wineserver -p -f &
|
||||||
|
|
||||||
|
# Install tools
|
||||||
|
echo " --- Installing tools"
|
||||||
|
cd ~/.wine/drive_c/Program\ Files/
|
||||||
|
|
||||||
|
# Install CMake
|
||||||
|
echo " -- Installing CMake"
|
||||||
|
wget -q https://github.com/Kitware/CMake/releases/download/v3.28.3/cmake-3.28.3-windows-x86_64.zip
|
||||||
|
unzip -q *.zip
|
||||||
|
rm *.zip
|
||||||
|
mv cmake-*-windows-x86_64 cmake
|
||||||
|
|
||||||
|
# Install ccache
|
||||||
|
echo " -- Installing ccache"
|
||||||
|
wget -q https://github.com/ccache/ccache/releases/download/v4.9.1/ccache-4.9.1-windows-x86_64.zip
|
||||||
|
unzip -q *.zip
|
||||||
|
rm *.zip
|
||||||
|
mv ccache-*-windows-x86_64 ccache
|
||||||
|
|
||||||
|
# Install Ninja
|
||||||
|
echo " -- Installing Ninja"
|
||||||
|
wget -q https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-win.zip
|
||||||
|
mkdir ninja
|
||||||
|
pushd ninja/ > /dev/null
|
||||||
|
unzip -q ../ninja-win.zip
|
||||||
|
popd > /dev/null
|
||||||
|
rm *.zip
|
||||||
|
|
||||||
|
# Install LLVM toolchain
|
||||||
|
echo " -- Installing LLVM toolchain"
|
||||||
|
wget -q https://github.com/mstorsjo/llvm-mingw/releases/download/20240308/llvm-mingw-20240308-msvcrt-x86_64.zip
|
||||||
|
unzip -q *.zip
|
||||||
|
rm *.zip
|
||||||
|
mv llvm-mingw-*-x86_64 llvm
|
||||||
|
|
||||||
|
# Install registry file
|
||||||
|
echo " -- Updating PATH environment variable"
|
||||||
|
wine regedit 'Z:\tmp\setup.reg'
|
||||||
|
|
||||||
|
# Print versions
|
||||||
|
echo " -- Tools installed:"
|
||||||
|
echo -n " - " ; wine cmake.exe --version | head -1
|
||||||
|
echo -n " - " ; wine ccache.exe --version | head -1
|
||||||
|
echo -n " - Ninja " ; wine ninja.exe --version
|
||||||
|
echo -n " - " ; wine clang.exe --version | head -1
|
||||||
|
|
||||||
|
# Download and compile out-of-tree dependencies
|
||||||
|
echo " --- Installing out-of-tree dependencies"
|
||||||
|
cd ~/.wine/drive_c/
|
||||||
|
|
||||||
|
# Download and compile Boost
|
||||||
|
echo " -- Downloading Boost"
|
||||||
|
wget -q https://boostorg.jfrog.io/artifactory/main/release/1.84.0/source/boost_1_84_0.zip
|
||||||
|
unzip -q *.zip
|
||||||
|
rm *.zip
|
||||||
|
mv boost_* boost
|
||||||
|
cd boost
|
||||||
|
echo " -- Bootstrapping Boost (no output due to Wine workarounds)"
|
||||||
|
xvfb-run wineconsole ./bootstrap.bat clang &> /dev/null
|
||||||
|
echo " -- Compiling boost"
|
||||||
|
wine ./b2.exe -j$(min $(nproc) 4) core context # Limiting to 2 to avoid "Too many open files"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue