Skip to content

Commit bad55fd

Browse files
committed
WIP
1 parent 2dfb271 commit bad55fd

File tree

2 files changed

+17
-214
lines changed

2 files changed

+17
-214
lines changed

.github/workflows/main.yml

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,22 @@ jobs:
66
windows-x64:
77
name: Windows x86_64
88
runs-on: windows-2025
9+
permissions:
10+
contents: read
11+
packages: write
12+
attestations: write
13+
id-token: write
914
steps:
1015
- uses: actions/checkout@v4
11-
- name: Build Docker Image
12-
run: docker build -t img windowsservercore-ltsc2025-qt6.6-64bit
16+
- name: Docker Login
17+
uses: docker/login-action@v3
18+
with:
19+
registry: ghcr.io
20+
username: ${{ github.actor }}
21+
password: ${{ secrets.GITHUB_TOKEN }}
22+
- name: Docker Build & Push
23+
uses: docker/build-push-action@v3
24+
with:
25+
context: windowsservercore-ltsc2025-qt6.6-64bit
26+
tags: librepcb/librepcb-dev:latest
27+
push: true

windowsservercore-ltsc2025-qt6.6-64bit/Dockerfile

Lines changed: 0 additions & 212 deletions
Original file line numberDiff line numberDiff line change
@@ -6,215 +6,3 @@ ADD *.dll C:/Windows/System32/
66
# Add Arial font since Slint requires it, see
77
# https://github.com/slint-ui/slint/issues/2556#issuecomment-2995413102
88
ADD arial.ttf C:/Windows/Fonts/
9-
10-
# Install Microsoft Visual C++ Redistributable for Visual Studio 2015-2022
11-
ARG VCREDIST_URL="https://download.visualstudio.microsoft.com/download/pr/6ba404bb-6312-403e-83be-04b062914c98/1AD7988C17663CC742B01BEF1A6DF2ED1741173009579AD50A94434E54F56073/VC_redist.x64.exe"
12-
RUN curl -o "C:/tmp.exe" -L "%VCREDIST_URL%" \
13-
&& C:/tmp.exe /quiet /norestart \
14-
&& del C:\tmp.exe
15-
16-
# Install 7-Zip
17-
# Attention: I observed issues with version 2409, thus better keep the old version
18-
ARG 7ZIP_URL="https://7-zip.org/a/7z2301-x64.exe"
19-
RUN curl -o "C:/tmp.exe" -L "%7ZIP_URL%" \
20-
&& C:/tmp.exe /S /D="C:/7zip" \
21-
&& setx PATH "%PATH%;C:\7zip" \
22-
&& del C:\tmp.exe
23-
24-
# Install Git
25-
# Attention: Version 2.50 breaks our CI in a strange way!
26-
ARG GIT_VERSION="2.44.0"
27-
ARG GIT_URL="https://github.com/git-for-windows/git/releases/download/v$GIT_VERSION.windows.1/Git-$GIT_VERSION-64-bit.exe"
28-
RUN curl -o "C:/tmp.exe" -L "%GIT_URL%" \
29-
&& C:/tmp.exe /VERYSILENT /NORESTART /NOCANCEL /SP- /CLOSEAPPLICATIONS /RESTARTAPPLICATIONS \
30-
/COMPONENTS="gitlfs" /o:PathOption="CmdTools" /o:CRLFOption="LFOnly" /DIR:"C:/git" \
31-
&& del C:\tmp.exe
32-
33-
# Install UV
34-
ARG UV_URL="https://github.com/astral-sh/uv/releases/download/0.7.13/uv-x86_64-pc-windows-msvc.zip"
35-
RUN curl -o "C:/tmp.zip" -L "%UV_URL%" \
36-
&& 7z x C:/tmp.zip -oC:/uv -bsp1 \
37-
&& setx PYTHONIOENCODING "UTF-8" \
38-
&& setx PATH "%PATH%;C:\uv" \
39-
&& del C:\tmp.zip
40-
41-
# Install CMake
42-
ARG CMAKE_VERSION="4.0.3"
43-
ARG CMAKE_URL="https://github.com/Kitware/CMake/releases/download/v$CMAKE_VERSION/cmake-$CMAKE_VERSION-windows-x86_64.zip"
44-
RUN curl -o "C:/tmp.zip" -L "%CMAKE_URL%" \
45-
&& 7z x C:/tmp.zip -oC:/ -bsp1 \
46-
&& rename cmake-%CMAKE_VERSION%-windows-x86_64 cmake \
47-
&& setx PATH "%PATH%;C:\cmake\bin" \
48-
&& del C:\tmp.zip
49-
50-
# Install Ninja
51-
ARG NINJA_URL="https://github.com/ninja-build/ninja/releases/download/v1.12.1/ninja-win.zip"
52-
RUN curl -o "C:/tmp.zip" -L "%NINJA_URL%" \
53-
&& 7z x C:/tmp.zip -oC:/ninja -bsp1 \
54-
&& setx PATH "%PATH%;C:\ninja" \
55-
&& del C:\tmp.zip
56-
57-
# Install CCache
58-
ARG CCACHE_VERSION="4.11.3"
59-
ARG CCACHE_URL="https://github.com/ccache/ccache/releases/download/v$CCACHE_VERSION/ccache-$CCACHE_VERSION-windows-x86_64.zip"
60-
RUN curl -o "C:/tmp.zip" -L "%CCACHE_URL%" \
61-
&& 7z x C:/tmp.zip -oC:/ -bsp1 \
62-
&& rename ccache-%CCACHE_VERSION%-windows-x86_64 ccache \
63-
&& setx PATH "%PATH%;C:\ccache" \
64-
&& del C:\tmp.zip
65-
66-
# Install MinGW
67-
ARG MINGW_URL="https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/tools_mingw90/qt.tools.win64_mingw900/9.0.0-1-202203221220mingw-w64-x86_64-11.2.0-release-posix-seh-rt_v9-rev3.7z"
68-
RUN powershell -Command Invoke-WebRequest $env:MINGW_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
69-
&& 7z x C:/tmp.7z -oC:/Qt -bsp1 \
70-
&& setx PATH "%PATH%;C:\Qt\Tools\mingw1120_64\bin" \
71-
&& del C:\tmp.7z
72-
73-
# Install Rust
74-
ARG RUST_VERSION="1.87.0"
75-
ENV RUSTUP_HOME="C:\rustup" \
76-
CARGO_HOME="C:\cargo"
77-
RUN curl -o "C:/rustup-init.exe" -L "https://win.rustup.rs/x86_64" \
78-
&& C:/rustup-init.exe -y -v \
79-
--profile minimal \
80-
--default-host x86_64-pc-windows-gnu \
81-
--default-toolchain none \
82-
&& C:\cargo\bin\rustup install %RUST_VERSION% \
83-
&& del C:\rustup-init.exe
84-
85-
# Install ZLib
86-
ARG ZLIB_VERSION="1.3.1"
87-
ARG ZLIB_URL="https://github.com/madler/zlib/releases/download/v$ZLIB_VERSION/zlib131.zip"
88-
RUN curl -o "C:/tmp.zip" -L "%ZLIB_URL%" \
89-
&& 7z x C:/tmp.zip -oC:/ -bsp1 \
90-
&& cd C:/zlib-%ZLIB_VERSION% \
91-
&& cmake . -G "Ninja" -DCMAKE_INSTALL_PREFIX=C:/zlib \
92-
&& ninja \
93-
&& ninja install \
94-
&& setx ZLIB_ROOT "C:/zlib" \
95-
&& setx PATH "%PATH%;C:\zlib\bin" \
96-
&& cd .. \
97-
&& rmdir C:\zlib-%ZLIB_VERSION% /s /q \
98-
&& del C:\tmp.zip
99-
100-
# Install OpenCascade
101-
ARG OCC_VERSION="7_9_1"
102-
ARG OCC_URL="https://github.com/Open-Cascade-SAS/OCCT/archive/refs/tags/V$OCC_VERSION.zip"
103-
RUN curl -o "C:/tmp.zip" -L "%OCC_URL%" \
104-
&& 7z x C:/tmp.zip -oC:/ -bsp1 \
105-
&& cd C:\OCCT-%OCC_VERSION% \
106-
&& cmake . -G "Ninja" \
107-
-DCMAKE_BUILD_TYPE=Release \
108-
-DINSTALL_DIR=C:/OpenCascade \
109-
-DBUILD_LIBRARY_TYPE=Shared \
110-
-DBUILD_DOC_Overview=0 \
111-
-DBUILD_MODULE_ApplicationFramework=0 \
112-
-DBUILD_MODULE_DataExchange=1 \
113-
-DBUILD_MODULE_Draw=0 \
114-
-DBUILD_MODULE_FoundationClasses=0 \
115-
-DBUILD_MODULE_ModelingAlgorithms=0 \
116-
-DBUILD_MODULE_ModelingData=0 \
117-
-DBUILD_MODULE_Visualization=0 \
118-
-DUSE_DRACO=0 \
119-
-DUSE_FREEIMAGE=0 \
120-
-DUSE_FREETYPE=0 \
121-
-DUSE_GLES2=0 \
122-
-DUSE_OPENGL=0 \
123-
-DUSE_OPENVR=0 \
124-
-DUSE_RAPIDJSON=0 \
125-
-DUSE_TBB=0 \
126-
-DUSE_TK=0 \
127-
-DUSE_VTK=0 \
128-
&& cmake --build . \
129-
&& cmake --install . \
130-
&& setx OpenCASCADE_DIR C:/OpenCascade/cmake \
131-
&& setx PATH "%PATH%;C:\OpenCascade\win64\gcc\bin" \
132-
&& cd .. \
133-
&& rmdir C:\OCCT-%OCC_VERSION% /s /q \
134-
&& del C:\tmp.zip
135-
136-
# Install Qt Runtime DLLs
137-
ARG QT_VERSION="6.6.2"
138-
ARG QT_BASEURL="https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt6_662"
139-
ARG QT_URL="${QT_BASEURL}/qt.qt6.662.win64_mingw/6.6.2-0-202402121135"
140-
ARG QT_DLLS_URL="${QT_URL}MinGW-w64-x86_64-11.2.0-release-posix-seh-rt_v9-rev1-runtime.7z"
141-
RUN powershell -Command Invoke-WebRequest $env:QT_DLLS_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
142-
&& 7z x C:/tmp.7z -oC:/Qt -bsp1 \
143-
&& del C:\tmp.7z
144-
145-
# Install Qt Tools
146-
ARG QT_TOOLS_URL="${QT_URL}qttools-Windows-Windows_10_22H2-Mingw-Windows-Windows_10_22H2-X86_64.7z"
147-
RUN powershell -Command Invoke-WebRequest $env:QT_TOOLS_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
148-
&& 7z x C:/tmp.7z -oC:/Qt -bsp1 \
149-
&& setx PATH "%PATH%;C:\Qt\%QT_VERSION%\mingw_64\bin" \
150-
&& del C:\tmp.7z
151-
152-
# Install Qt Base
153-
ARG QT_BASE_URL="${QT_URL}qtbase-Windows-Windows_10_22H2-Mingw-Windows-Windows_10_22H2-X86_64.7z"
154-
ARG QT_PRI="C:\\Qt\\$QT_VERSION\\mingw_64\\mkspecs\\qconfig.pri"
155-
RUN powershell -Command Invoke-WebRequest $env:QT_BASE_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
156-
&& 7z x C:/tmp.7z -oC:/Qt -bsp1 \
157-
&& del C:\tmp.7z \
158-
&& powershell -Command "((Get-Content -path $env:QT_PRI -Raw) -replace 'Enterprise', 'OpenSource') | Set-Content -Path $env:QT_PRI" \
159-
&& powershell -Command "((Get-Content -path $env:QT_PRI -Raw) -replace 'licheck.exe', '') | Set-Content -Path $env:QT_PRI"
160-
161-
# Install Qt SVG
162-
ARG QT_SVG_URL="${QT_URL}qtsvg-Windows-Windows_10_22H2-Mingw-Windows-Windows_10_22H2-X86_64.7z"
163-
RUN powershell -Command Invoke-WebRequest $env:QT_SVG_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
164-
&& 7z x C:/tmp.7z -oC:/Qt -bsp1 \
165-
&& del C:\tmp.7z
166-
167-
# Install Qt Declarative
168-
ARG QT_DECLARATIVE_URL="${QT_URL}qtdeclarative-Windows-Windows_10_22H2-Mingw-Windows-Windows_10_22H2-X86_64.7z"
169-
RUN powershell -Command Invoke-WebRequest $env:QT_DECLARATIVE_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
170-
&& 7z x C:/tmp.7z -oC:/Qt -bsp1 \
171-
&& del C:\tmp.7z
172-
173-
# Install Qt OpenGL (not sure if needed)
174-
ARG QT_QT5OPENGL_URL="${QT_URL}opengl32sw-64-mesa_11_2_2-signed_sha256.7z"
175-
RUN powershell -Command Invoke-WebRequest $env:QT_QT5OPENGL_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
176-
&& 7z x C:/tmp.7z -oC:/Qt -bsp1 \
177-
&& del C:\tmp.7z
178-
179-
# Install Qt D3D (not sure if needed)
180-
ARG QT_QT5D3D_URL="${QT_URL}d3dcompiler_47-x64.7z"
181-
RUN powershell -Command Invoke-WebRequest $env:QT_QT5D3D_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
182-
&& 7z x C:/tmp.7z -oC:/Qt -bsp1 \
183-
&& del C:\tmp.7z
184-
185-
# Install Qt Translations
186-
ARG QT_TRANSLATIONS_URL="${QT_URL}qttranslations-Windows-Windows_10_22H2-Mingw-Windows-Windows_10_22H2-X86_64.7z"
187-
RUN powershell -Command Invoke-WebRequest $env:QT_TRANSLATIONS_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
188-
&& 7z x C:/tmp.7z -oC:/Qt -bsp1 \
189-
&& del C:\tmp.7z
190-
191-
# Install Qt5 Compat
192-
ARG QT_QT5COMPAT_URL="${QT_BASEURL}/qt.qt6.662.qt5compat.win64_mingw/6.6.2-0-202402121135qt5compat-Windows-Windows_10_22H2-Mingw-Windows-Windows_10_22H2-X86_64.7z"
193-
RUN powershell -Command Invoke-WebRequest $env:QT_QT5COMPAT_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
194-
&& 7z x C:/tmp.7z -oC:/Qt -bsp1 \
195-
&& del C:\tmp.7z
196-
197-
# Install Qt Image Formats Plugin
198-
ARG QT_IMAGEFORMATS_URL="${QT_BASEURL}/qt.qt6.662.addons.qtimageformats.win64_mingw/6.6.2-0-202402121135qtimageformats-Windows-Windows_10_22H2-Mingw-Windows-Windows_10_22H2-X86_64.7z"
199-
RUN powershell -Command Invoke-WebRequest $env:QT_IMAGEFORMATS_URL -OutFile 'C:/tmp.7z' -UseBasicParsing ; \
200-
&& 7z x C:/tmp.7z -oC:/Qt -bsp1 \
201-
&& del C:\tmp.7z
202-
203-
# Install Inno Setup
204-
# Note: 6.4.3 emits some warnings when generating the LibrePCB installer,
205-
# should be reviewed when upgrading
206-
ARG INNOSETUP_URL="https://files.jrsoftware.org/is/6/innosetup-6.2.2.exe"
207-
RUN curl -o "C:/tmp.exe" -L "%INNOSETUP_URL%" \
208-
&& C:/tmp.exe /NOICONS /VERYSILENT /DIR=C:\innosetup \
209-
&& setx PATH "%PATH%;C:\innosetup" \
210-
&& del C:\tmp.exe
211-
212-
# Pre-install a Python version
213-
RUN uv python install 3.13
214-
215-
# Install OpenSSL (last one in Dockerfile because it should be updated regularly)
216-
ARG OPENSSL_URL="https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/tools_opensslv3_x64/qt.tools.opensslv3.win_x64/3.0.16-1openssl_3.0.16_prebuild_x64.7z"
217-
RUN curl -o "C:/tmp.7z" -L "%OPENSSL_URL%" \
218-
&& 7z x C:/tmp.7z -oC:/Qt/Tools/OpenSSLv3 -bsp1 \
219-
&& setx OPENSSL_ROOT "C:/Qt/Tools/OpenSSLv3/Win_x64" \
220-
&& del C:\tmp.7z

0 commit comments

Comments
 (0)