Siddarth Kumar 8e7a588bee
ci: use sc5cmd for uploads (#17228)
This fixes issues like :

11:16:59  + s3cmd --stats --acl-public --no-preserve --host=ams3.digitaloceanspaces.com '--host-bucket=%(bucket)s.ams3.digitaloceanspaces.com' put pkg/StatusIm-Desktop-250205-101034-e6dfac-pr17210-aarch64.dmg s3://status-im-desktop-prs/
11:16:59  /opt/homebrew/Cellar/s3cmd/2.4.0_1/libexec/lib/python3.13/site-packages/S3/S3Uri.py:122: SyntaxWarning: invalid escape sequence '\.'
11:16:59    m = re.match("(.*\.)?s3(?:\-[^\.]*)?(?:\.dualstack)?(?:\.[^\.]*)?\.amazonaws\.com(?:\.cn)?$",
11:16:59  /opt/homebrew/Cellar/s3cmd/2.4.0_1/libexec/lib/python3.13/site-packages/S3/S3Uri.py:170: SyntaxWarning: invalid escape sequence '\w'
11:16:59    _re = re.compile("^(\w+://)?(.*)", re.UNICODE)
11:16:59  /opt/homebrew/Cellar/s3cmd/2.4.0_1/libexec/lib/python3.13/site-packages/S3/FileLists.py:525: SyntaxWarning: invalid escape sequence '\*'
11:16:59    wildcard_split_result = re.split("\*|\?", uri_str, maxsplit=1)
11:17:00  ERROR: SSL certificate verification failure: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1018)

- we also bump nix interpreter version to 2.24.11
- we also use a newer image which has support for nix-shell since sc5cmd needs a nix-shell
2025-02-06 17:54:52 +05:30
..
2025-02-06 17:54:52 +05:30
2025-02-06 17:54:52 +05:30

Description

These Jenkinsfiles are used to run CI jobs in Jenkins. You can find them here: https://ci.status.im/job/nim-status-client/

Builds

Linux

In order to build the Linux version of the application we use the ubuntu:20.04 Docker image where we install the Qt 5.15.2 provided by aqt, linuxdeployqt provided by https://github.com/probonopd/linuxdeployqt and other dependencies (go, cmake, gcc etc.). We're using Ubuntu 20.04 to ensure glibc compatibility with the oldest still-supported LTS release and to comply with linuxdeployqt requirements.

The image is built with Dockerfile using:

docker build -t statusteam/nim-status-client-build:latest .

And pushed to: https://hub.docker.com/r/statusteam/nim-status-client-build

MacOS

The MacOS builds are run on MacOS hosts and expect Command Line Toold and XCode to be installed, as well as QT being available under /usr/local/qt.

It also expects the presence of the following credentials:

  • macos-keychain-identity - ID of used signing certificate.
  • macos-keychain-pass - Password to unlock the keychain.
  • macos-keychain-file - Keychain file with the MacOS signing certificate.

You can read about how to create such a keychain here.