Commit Graph

530 Commits

Author SHA1 Message Date
Azat Khuzhin
0b258dda4e Reproducible builds for Rust
From now on cargo will not download anything from the internet during
builds. This step had been moved for docker image builds (via cargo
vendor).

And now cargo inside docker.io/clickhouse/binary-builder will not use
any crates from the internet, so we don't need to add --offline for
cargo commands in cmake (corrosion_import_crate()).

Also the docker build command had been adjusted to allow following
symlinks inside build context, by using tar, this is required for Rust
packages.

Note, that to make proper Cargo.lock that could be vendored I did the
following:
- per-project locks had been removed (since there is no automatic way to
  sync the workspace Cargo.lock with per-project Cargo.lock, since cargo
  update/generate-lockfile will use only per-project Cargo.toml files
  apparently, -Z minimal-versions does not helps either)
- and to generate Cargo.lock with less changes I've pinned version in
  the Cargo.toml strictly, i.e. not 'foo = "0.1"' but 'foo = "=0.1"'
  then the Cargo.lock for workspace had been generated and afterwards
  I've reverted this part.

Plus I have to update the dependencies afterwards, since otherwise there
are conflicts with dependencies for std library. Non trivial.

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-07-22 22:46:22 +02:00
Alexey Milovidov
f8eaa3e8e6
Merge pull request #51903 from azat/build/pin-rust
Pin rust nightly (to make it stable)
2023-07-07 20:28:57 +03:00
Azat Khuzhin
ec5e26a017 Pin rust nightly (to make it stable)
Because of using Rust nightly, and without #49601 the Rust toolchain is
very unstable, and can be frequently failed.

So let's ping particular version.

Also I've looked and it seems that Rust archives stores this archive
without any TTL, since there is even a version for 2015 year.

Follow-up for: #50541
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-07-06 21:17:50 +02:00
Alexey Milovidov
1eafba60d2 Merge branch 'master' into riscv-in-ci 2023-07-04 21:28:05 +02:00
Alexey Milovidov
463c2ba5ce
Revert "Add documentation for building in docker" 2023-07-04 14:07:10 +03:00
Mikhail f. Shiryaev
c715ee5cef
Replace --build-type=debug by --debug-build 2023-07-03 19:58:47 +02:00
Mikhail f. Shiryaev
6d2b5166b9
Update golang version in builder 2023-06-28 10:32:20 +02:00
Alexey Milovidov
5d26b0cf7c
Merge pull request #50550 from cmsxbc/misc-darwin-build
skip extracting darwin toolchain in builder when unncessary
2023-06-05 11:11:34 +03:00
Alexey Milovidov
47379ac039
Update build.sh 2023-06-05 03:58:42 +03:00
Azat Khuzhin
bf127f4e1e MSan support for Rust
Previously you have to unpoison memory from the Rust, however Rust does
supports MSan, so let's simply use it.

But for this we need nightly Rust and recompile standard library.

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-06-04 23:04:55 +02:00
cmsxbc
4bb44c7c72
1. skip extract darwin toolchain in builder when uncessary
2. update MacOSX SDK version in toolchain readme to match in builder
2023-06-04 23:06:21 +08:00
Azat Khuzhin
c37fe64040 Merge remote-tracking branch 'u/master' into build/llvm-16 2023-05-08 22:33:52 +02:00
Mikhail f. Shiryaev
7ff582b963
Deprecate ENABLE_CCACHE and replace it by COMPILER_CACHE 2023-03-29 23:33:31 +02:00
Mikhail f. Shiryaev
def5ae851e
Use CTCACHE_DIR only with ccache 2023-03-29 23:33:29 +02:00
Mikhail f. Shiryaev
f1b1f30764
Make --ccache-dir equal to --ccache_dir 2023-03-29 23:33:27 +02:00
Mikhail f. Shiryaev
fcc14ae724
Enable s3 caching 2023-03-29 23:33:27 +02:00
Mikhail f. Shiryaev
6d8da8f88b
Add sccache and ctcache S3 parameters, don't use 2023-03-29 23:33:27 +02:00
Mikhail f. Shiryaev
df17a35410
Get rid of useless cache_maxsize parameter 2023-03-29 23:33:26 +02:00
Mikhail f. Shiryaev
2d872ff23b
Add a function to parse arguments 2023-03-29 23:33:26 +02:00
Mikhail f. Shiryaev
419f234294
Fix logic for --force-build-image 2023-03-29 23:33:25 +02:00
Mikhail f. Shiryaev
3b1291eb0e
Replace distcc with sccache in packager 2023-03-29 23:33:25 +02:00
Mikhail f. Shiryaev
612d1d8876
Install sccache in binary-builder and fasttests 2023-03-29 23:33:24 +02:00
Mikhail f. Shiryaev
c994c41e74
Fix logging formatting 2023-03-29 23:33:23 +02:00
Mikhail f. Shiryaev
648697f085
Add main function, use specific exception in packager 2023-03-29 23:33:23 +02:00
Mikhail f. Shiryaev
cd5852f11a
Add typing and rewrite packager to pathlib.Path 2023-03-29 23:33:21 +02:00
Alexey Milovidov
89a76c2d77 Use LLVM 16 2023-03-18 23:45:57 +01:00
Alexey Milovidov
d0d6306102 Fix coverity 2023-02-21 00:46:27 +01:00
Mikhail f. Shiryaev
08ffb8f93d
Install only "programs" directory during build 2023-02-15 11:49:19 +01:00
Mikhail f. Shiryaev
6a968bad8e
Reduce building and compiling deb packages with ninja *install 2023-02-14 14:57:00 +01:00
Mikhail f. Shiryaev
4d8ff0c0fb
Update the golang version to 1.19.5 2023-02-13 13:19:45 +01:00
Mikhail f. Shiryaev
ebb41504c0
Move copy to the end for parallel image building 2023-02-12 14:55:16 +01:00
Mikhail f. Shiryaev
376b5d178f
Experiment with multiple build stages 2023-02-09 19:13:44 +01:00
Mikhail f. Shiryaev
1ef1eefa26
Format the RUN, update clang-tidy-cache 2023-02-09 19:10:48 +01:00
Mikhail f. Shiryaev
5bc3e703ef
Move the heaviest operation to the top 2023-02-09 19:10:06 +01:00
MeenaRenganathan22
4a0202a074 Committing the docker with the changes to install the ysam 2023-01-24 20:41:43 -05:00
Alexey Milovidov
e9f11a3e61 Fix Docker 2023-01-08 22:45:30 +01:00
Alexey Milovidov
4694dad87c Break CI 2023-01-08 07:59:31 +01:00
Robert Schulze
cfb6feffde
What happens if I remove these 139 lines of code? 2023-01-03 18:35:31 +00:00
Alexey Milovidov
d07f0c9e3f Fix GitHub 2023-01-02 23:44:42 +01:00
Alexey Milovidov
ca117d5b94
Merge branch 'master' into remove-two-lines-of-code 2023-01-02 22:15:36 +03:00
Azat Khuzhin
d9fb47458f Exclude cargo shared libraries from the artifacts
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2023-01-02 12:36:14 +01:00
Alexey Milovidov
47ae8c5c79 Remove more lines 2023-01-02 02:06:11 +01:00
Alexey Milovidov
f7f5aaf35d What if I will remove two lines of code? 2023-01-02 01:20:34 +01:00
Robert Schulze
2b9a0824fe
Cosmetics: Rename "amd64-sse2" builds to "amd64-compat" builds
... a bit of consistency with "aarch64-v80compat"
2022-12-19 19:00:21 +00:00
Azat Khuzhin
28737a503c Configure rustc compiler properly
Right now it works for host platforms because of gcc package, that
includes gcc-cross sysroot.

Use bundled sysroot from contrib instead.

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-12-14 20:57:29 +01:00
Azat Khuzhin
67fa185611
Revert "Builtin skim" 2022-12-14 17:17:19 +03:00
Azat Khuzhin
8570f15688 Configure rustc compiler properly
Right now it works for host platforms because of gcc package, that
includes gcc-cross sysroot.

Use bundled sysroot from contrib instead.

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-12-11 15:52:00 +01:00
Mikhail f. Shiryaev
a68dc6280d
Optimize binary-builder size 2022-11-25 12:17:51 +01:00
Mikhail f. Shiryaev
150ceb7d37
Use matus-chochlik/ctcache for clang-tidy 2022-11-03 11:53:11 +01:00
Azat Khuzhin
043c4163f4 Use nfpm packager for archlinux packages
Since nfpm v2.20.0 it can build packages for archlinux [1].

  [1]: https://github.com/goreleaser/nfpm/pull/543

Something like this:

    $ mkdir -p /src/packages/root
    $ cmake -DCMAKE_INSTALL_PREFIX=/usr /src
    $ DESTDIR=/src/packages/root ninja install
    $ cd /src/packages
    $ ./build --archlinux

    $ root@s3:/src/packages# ./build --archlinux
    Current version is 22.10.1.1
    Building archlinux package for clickhouse-client.yaml
    using archlinux packager...
    created package: /src/clickhouse-client-22.10.1.1-1-x86_64.pkg.tar.zst
    ...

Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
2022-10-18 18:33:48 +03:00