diff --git a/ci/Dockerfile b/ci/Dockerfile index dfbaedb3509..3cd23cc4951 100644 --- a/ci/Dockerfile +++ b/ci/Dockerfile @@ -2,6 +2,7 @@ ARG QT_VERSION="6.9.2" ARG QT_MODULES="qtwebchannel qtwebview qtwebsockets qt5compat qtmultimedia qtwebengine qtpositioning qtserialport qtshadertools qtimageformats qtscxml qthttpserver" ARG LINUXDEPLOYQT_VERSION="20250615-0393b84" ARG PCSCLITE_VERSION="2.2.3" +ARG NIM_VERSION="2.2.4" # QT Installation Image -------------------------------------------------------- FROM ubuntu:22.04 AS qt-install @@ -46,7 +47,7 @@ RUN cp builddir/pcsclite.h src/PCSC # Build Image ------------------------------------------------------------------ FROM ubuntu:22.04 -ARG QT_VERSION LINUXDEPLOYQT_VERSION PCSCLITE_VERSION +ARG QT_VERSION LINUXDEPLOYQT_VERSION PCSCLITE_VERSION NIM_VERSION # Adapted from a12e/docker-qt by Aurélien Brooke @@ -170,6 +171,22 @@ RUN curl -s https://nixos.org/releases/nix/nix-2.24.11/install | sh -s -- --no-d # for nix-shell to work ENV PATH="/home/jenkins/.nix-profile/bin:${PATH}" +# Nim +RUN curl https://nim-lang.org/choosenim/init.sh -sSf | sh -s -- -y \ + && /home/jenkins/.nimble/bin/choosenim ${NIM_VERSION} +ENV PATH="/home/jenkins/.nimble/bin:${PATH}" + +# Switch to root to create system-wide symlinks for Nim tools +USER root + +RUN ln -sf /home/jenkins/.choosenim/toolchains/nim-${NIM_VERSION}/bin/nim /usr/local/bin/nim \ + && ln -sf /home/jenkins/.choosenim/toolchains/nim-${NIM_VERSION}/bin/nimble /usr/local/bin/nimble \ + && ln -sf /home/jenkins/.choosenim/toolchains/nim-${NIM_VERSION}/bin/choosenim /usr/local/bin/choosenim \ + && chmod 755 /home/jenkins/.choosenim/toolchains/nim-${NIM_VERSION}/bin/* \ + && chown -R root:root /home/jenkins/.choosenim/toolchains/nim-${NIM_VERSION}/bin + +USER jenkins + LABEL maintainer="jakub@status.im" LABEL source="https://github.com/status-im/status-app" LABEL description="Build image for the Status Desktop client written in Nim." diff --git a/ci/Jenkinsfile.linux b/ci/Jenkinsfile.linux index 68ce94f0033..86c97cdee18 100644 --- a/ci/Jenkinsfile.linux +++ b/ci/Jenkinsfile.linux @@ -10,7 +10,7 @@ pipeline { /* Image with Ubuntu 22.04 and QT 6.9.2 */ docker { label 'linuxcontainer' - image 'harbor.status.im/status-im/status-desktop-build:1.0.5-qt6.9.2' + image 'harbor.status.im/status-im/status-desktop-build:1.0.6-qt6.9.2' /* allows jenkins use cat and mounts '/dev/fuse' for linuxdeployqt */ args '--entrypoint="" ' + '--cap-add=SYS_ADMIN ' + diff --git a/ci/Jenkinsfile.tests-nim b/ci/Jenkinsfile.tests-nim index 6b92f14fa38..e14eb55b6e8 100644 --- a/ci/Jenkinsfile.tests-nim +++ b/ci/Jenkinsfile.tests-nim @@ -8,7 +8,7 @@ pipeline { agent { docker { label 'linuxcontainer' - image 'harbor.status.im/status-im/status-desktop-build:1.0.5-qt6.9.2' + image 'harbor.status.im/status-im/status-desktop-build:1.0.6-qt6.9.2' } } diff --git a/scripts/macos_build_setup.sh b/scripts/macos_build_setup.sh index f890d749da5..487a5870ae7 100755 --- a/scripts/macos_build_setup.sh +++ b/scripts/macos_build_setup.sh @@ -19,7 +19,7 @@ function check_version { function install_build_dependencies { echo "Install build dependencies" - brew install pkg-config libtool jq node@22 yarn protoc-gen-go aqtinstall xcbeautify + brew install pkg-config libtool jq node@22 yarn protoc-gen-go aqtinstall xcbeautify nim } function install_qt { diff --git a/scripts/windows_build_setup.ps1 b/scripts/windows_build_setup.ps1 index dd02d46c34b..57e7c1c55aa 100644 --- a/scripts/windows_build_setup.ps1 +++ b/scripts/windows_build_setup.ps1 @@ -40,6 +40,7 @@ function Install-Dependencies { scoop install --global ` 7zip git dos2unix findutils ` wget rcedit inno-setup ` + nim mingw-winlibs ` make gcc openssl-lts } diff --git a/vendor/status-go b/vendor/status-go index 08e010026b2..66525797196 160000 --- a/vendor/status-go +++ b/vendor/status-go @@ -1 +1 @@ -Subproject commit 08e010026b29c5d9f7fb340ec4c7ef7376d5b2f8 +Subproject commit 6652579719601260869f96819d909104b9670617