Since the change to native symbol formats, the archived packages are huge and are
occupying too much disk space in Jenkins master. Therefore limit it to the case
in which they are really uploaded to backtrace and products released.
Summary:
Backtrace accepts a wide range of native debugging formats, e.g. PDB, dSYM, ELF files. Instead of converting to an intermediate format being breakpad sym files, package and upload the native formats directly.
Also reduce the list of debugging symbols to a reasonable minimum. Sample and test symbols are not required.
Reviewers: #gatekeepers, msutcliffe
Reviewed By: #gatekeepers, msutcliffe
Subscribers: msutcliffe
Maniphest Tasks: T588
Differential Revision: https://dev.swift-project.org/D102
Summary:
In the previous attempt, the parent directory was added to the tar file with it being renamed to ".".
So it still had a directory and was not a flat tar file. Instead add all files from the symbol path individually.
Reviewers: #swift_pilot_client
Differential Revision: https://dev.swift-project.org/D86
Symbol files were never copied one to one to a break server. Therefore
setting up the required directory structure is not necessary.
In contrast, backtrace.io wants a tarball without any subdirs.
The config is loaded from json files by qmake, and we define the qmake
function `swiftConfig` for checking whether a feature is enabled.
This function can be directly used in `buildconfig_gen.cpp.in`,
so the trick with C++ comment tokens in variables is not needed.
Depending on the branch, we override the end of live date relative in month
from the build time.
develop/ builds expire in 6 month
release/ builds expire in 12 month
all others expire in 3 month.
ref T319
Summary:
- Changed the name in all build artifacts
- Everywhere in C++
Reviewers: #swift_pilot_client, kbasan
Reviewed By: #swift_pilot_client, kbasan
Subscribers: jenkins
Maniphest Tasks: T205
Differential Revision: https://dev.swift-project.org/D69
Summary:
The version number used for packaging symbols and xswiftbus was not the
full one including the timestamp.
This change adds the last commit timestamp (in contrast to the build
timestamp used before) as regular part of the version number. This helps
us to also keep the version number consistent with the content across all
installers. The version number will change only, if the last commit was
modified and not with each different build.
In the end, all jenkins jobs building from the same commit should produce
artifacts with the same version everywhere.
ref T204
Reviewers: #swift_pilot_client, kbasan
Reviewed By: #swift_pilot_client, kbasan
Subscribers: jenkins
Maniphest Tasks: T204
Differential Revision: https://dev.swift-project.org/D68
For 32 bit we still use the binary compatible MSVC 2015 prebuilt Qt binaries.
For 64 bit, we change to the MSVC 2017 prebuilt binaries.
Redistributables are in no packaged from MSVC 2017 installs.
Summary:
This change adds an automatic shared files update step during the jenkins
build. This guarantees, that we always have the latest DB data packaged
into the installers.
The updated files will be written into the source directory, so install
step will automatically pick up the updated ones.
ref T158
Reviewers: #swift_pilot_client, msutcliffe
Reviewed By: #swift_pilot_client, msutcliffe
Subscribers: jenkins
Maniphest Tasks: T158
Differential Revision: https://dev.swift-project.org/D56
By default, uploading of symbols is disabled. It will enabled for specific
release builds only.
This supersedes copying the symbol tarbal in the jenkins job.
ref T69
Using the python method 'cpu_count()' is not working everywhere.
In Linux containers, 'multiprocessing.cpu_count()' returns the number
of cpu's of the host machine, not the number assigned to the linux
container.
Summary:
So far, the build process was configured for each job individually. This
was flexible in the past, when frequent changes were needed. Now, since
the CI build configurations are very stable, it is huge effort to keep
the jobs aligned during changes (e.g. Qt upgrade, build arguments etc).
This, plus the need to version control the build process has driven
the creation of this build script. The script is running on all nodes
and provides a small number of arguments to configure the build.
Python script for creating symbols is incorporated and therefore renamed.
Reviewers: #swift_pilot_client, msutcliffe
Subscribers: msutcliffe, jenkins
Differential Revision: https://dev.swift-project.org/D40