Age | Commit message (Collapse) | Author |
|
Now using the version that's
present in the bionic images.
Meaning we have more warnings
but can also set the minimum
level to ignore a lot of them.
Fix the check for whether
shellcheck supports --severity.
(we have pipefail on, but we
expect shellcheck to fail in
this case)
Change-Id: I296b8554591b7d327c75393e3924184abc6512b7
|
|
Extends projects selection mechanism to handle the checkout of a
specific git revision. The revisions to use are specified as with the
notation @sha1 in the project list passed by --projects option, for
instance:
--projects=llvm@sha1_1 clang compiler_rt@sha1_2
The priorities for checkout are:
1- The revision passed by @sha1 notation
2- The svn revision passed by --revision option
3- Top of the branch passed by --branch option
4- Top of master branch
Change-Id: Idfbc24bc71b86455c9b41528b38df653750e28df
|
|
Change-Id: I4ce2117d8a9a7e58653747898bf268413c802224
|
|
Dump the toolchain URL at the end of the build and release jobs, so we
can easily copy it and use it for triggering other jobs.
Change-Id: Ie470fdf72c38a6440ef09f72e339233983e81ed9
|
|
Change-Id: Iec34423be746d6267342068037e88e287374ab58
|
|
As discussed in TCWG-1134, we need a list of projects to checkout if the
branch is master and there is a revision (buildbot and pre-commit base
cases) as well as a branch and no list (for pre-commit patch cases.
The relationship between lists and branches is that having a branch and
not being in the list is ok, but being in the list and not having a
branch is not. This patch addresses that, so that we can create any
number of trigger jobs without worrying about the parameters we pass.
It should either be safe, user error, or the job will bail.
Needs https://review.linaro.org/19777 to work.
Change-Id: I83fa889f3d3ebf80f08ffed218d4e72e40a88ecc
|
|
Change-Id: If201cb6dcbfb4bbfef6576dcc664d4a26b2107b4
|
|
Change-Id: I6803f44dcf0191866fc3499f22cde1410ae62356
|
|
Change-Id: Ibfa165cc383e98b7ad11c7fcb88c2371c7d97fa0
|
|
Change-Id: I0fd7fe1d0dfdd297c0c0784baaa291211c56103e
|
|
This implements the simplest way to do a pre-commit test as described in
TCWG-1124: Any tree that needs building will push to the appropriate
branch all the projects that they need, regardless of changes.
This can only work if the underlying process guarantees that:
1. No user will ever create a repo with that name, even by accident,
for example, by Forcing an exclusive namespace like
jenkins-test/username/branch.
2. The branches are deleted at the end, regardless of success or failure.
To re-start a build on the same branch, just push it again and re-run the
job. This may not be possible for Jenkins to do (as it doesn't have
write permissions to all git repos we could possibly try to build from),
so this will need some coordination with the rest of the LLVM scripts.
This change also re-factors how to checkout the llvm repositories, so
that we can control on a branch level and collect only the relevant SVN
revisions from the branches we have actually checked out.
Change-Id: I2f77ac49f23ce79f2057f1cc90e1ccd63e2a45f4
|
|
Change-Id: Ie9cb93e213bdba75ab84d755852cfe220aa5ea7b
|
|
Change-Id: Ie81de5b7ce4e87331a4602b7e6deada91a273942
|
|
In addition to an external toolchain, we also want to control which
system compiler is to be used. If an option is passed, that will be the
set into CC/CXX and used by the scripts in the same way an external
toolchain would.
Change-Id: I25366c6c3c725ead1667d7b8828b1100e5e925d3
|
|
To make sure stage two builds the same revision as stage 1 and to
correctly identify the SVN revision of an LLVM build, calculate the SVN
revision if one it not provided.
Always passing down toolchain and revision, as they should always be
available at that point. The test-suite job is free to ignore it.
Change-Id: I5a79284ac4fbc5a42e5d85e69f39a8c6d68e0cc6
|
|
Change-Id: I3742ada9e0c2e6342355a5d7294dd03648fa8ac2
|
|
Change-Id: I422ce0666089864ab50bf065af171c7ff0e4d1dd
|
|
Change-Id: I1e345109db5067af9924758b04df40d8f6895e27
|
|
Change-Id: Iedb0a501989dbaa6fd24d728d92e66a8dba1f9aa
|
|
This is an NFC patch that just common things up. I'm making sure that we
only handle URLs and toolchain downloads in a single place, which will
later be very useful when we get Jenkins to ask these scripts to create
the trigger files.
This is the first part of TCWG-1117. Adding the trigger files will be
the second.
I have tested on my box by sourcing the common file and calling the
functions with the right parameters as well as running the scripts
(build/release/test) with the appropriate arguments but with the core
logic actually commented out.
I have some empty tar balls with the right names on dev-01. :)
Change-Id: Ice435ad9d5e20152e295413075c32a396ffc5e2a
|
|
Change-Id: I3e6c6b12eb4f0c29e1a33f9fced10d36f542cf62
|
|
Change-Id: I00f472b2b39ffa4761a72606bfdcc1627a186905
|
|
Change-Id: Ib8208bf6ed183bc54f4944f0945966ff5d1c7d51
|
|
Change-Id: I3687c55f3719e26dfce1f7113be3c35f93a6ff65
|
|
The new argument will move the tree to a specific SVN revision on all
repos by finding the nearest Git commit and checking out to it.
This will be merged with https://review.linaro.org/#/c/18783/ for the
flock issue before commit.
The test-suite doesn't need a specific commit, since it doesn't change
much and the only place it really matters is the release, which will be
dealt with separately.
Change-Id: I469c6cfd83e0b1f0c9038b767bf8e07b522df1cd
|
|
Updates:
- Using $REFDIR instead of hard-coding (don't need parameter yet)
- Using flock on non-new directory, to avoid rsync problems
Change-Id: I64aff86df2cf0090b87e35ca3bc588ba39473781
|
|
Change-Id: Id8e3211856c35a1cbc1da8e264a83e5c8d72100f
|
|
Sometime during the development stages, we lost the ability to run with
the system compiler instead of one specified in the arguments list. The
test-suite still must have a toolchain (no point in testing the system
compiler), but the release and the staged build (stage1) can use it.
Change-Id: I66f8d9094f3f9f6aaccbbb279bd78862c0d9a803
|
|
Change-Id: I4cd8f25547037be2fa027daa0f046f1cac4554cb
|
|
* Using "set -exu" to catch a lot of errors
* Forcing ninja, since we really need to control the link jobs
* Removing build/src/install dir settings
* Controlling dirs internally (mkdir -p)
* Explicitly passing the workspace, build ID
Tested locally, multiple steps, no unbound variables,
checkouts, builds and ships.
Change-Id: Ie3445603f442e3fe596324f48478c61719c92f91
|
|
Change-Id: I0d475cf8e0f054eb645d464610c5708a49601f5e
|
|
This new parameter allows us to choose a toolchain to use to build LLVM.
This can either be an upstream release (from llvm.org/releases) or
internal ones stored in dev-01, so we can do stage 2 builds.
A similar patch in configs is being submitted to cope with the
new parameter.
Change-Id: Ic8d440e21ea22ebd611d431d4b99b558b36bdee4
|
|
Change-Id: Idd7d03ca98859e8039fadabc7178acd6f93be4c4
|
|
After install, repeat the release package process and push to our file
server so other jobs can use those toolchains.
The official release has M.m.r-rcN format for the release candidates, so
I made ciN for Jenkins builds, so we can differentiate between each
other.
Change-Id: Icf24c5c44047cab8c136556de8420493ebf23261
|
|
Change-Id: Idfc1596e7aa395cab2f8601787f5ec0ec5ad45cb
|
|
Fixing a few issues with cloning the repos and installing on the wrong prefix
(LLVM forces the prefix, we need to use DESTDIR), as well as adding logs
to each step (and splitting into more steps), so that Jenkins can use them as
artifacts.
Change-Id: I69d9fb6cc477388a97dc4bc0f1884c6c529d97c8
|
|
This is a simple wrapper copied from another TCWG script that should, in
theory, build LLVM and check whatever is built. We don't plan on adding
all logic to this script, but use this wrapper to call our existing
build scripts that know how to do everything aroung LLVM.
But first, we need to run a build from Jenkins and see that we can. This
is that step.
Change-Id: I88aa7d7571eaec1b30b4e99b0a516f5a08b561e8
|