summaryrefslogtreecommitdiff
path: root/tcwg-llvm-build.sh
AgeCommit message (Collapse)Author
2020-04-28Shellcheck fixes round 3David Spickett
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
2018-06-06tcwg-llvm-build: Add git sha1 handling.Yvan Roux
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
2018-05-18tcwg-llvm-build: Compress the tarball.Yvan Roux
Change-Id: I4ce2117d8a9a7e58653747898bf268413c802224
2017-07-26tcwg-llvm-[build|release].sh: Echo URL at the end of the jobDiana Picus
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
2017-05-30tcwg-llvm-*: Function to find projects with a branchRenato Golin
Change-Id: Iec34423be746d6267342068037e88e287374ab58
2017-05-26tcwg-llvm-build.sh: Add list of projects to considerRenato Golin
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
2017-05-24tcwg-llvm-build.sh: Use llc for target nameRenato Golin
Change-Id: If201cb6dcbfb4bbfef6576dcc664d4a26b2107b4
2017-05-24tcwg-llvm-build.sh: Work around cmake quotingRenato Golin
Change-Id: I6803f44dcf0191866fc3499f22cde1410ae62356
2017-05-23tcwg-llvm-build.sh: Better validation of empty argumentsRenato Golin
Change-Id: Ibfa165cc383e98b7ad11c7fcb88c2371c7d97fa0
2017-05-23tcwg-llvm-build.sh: Adding --cmakeflags optionRenato Golin
Change-Id: I0fd7fe1d0dfdd297c0c0784baaa291211c56103e
2017-05-19tcwg-llvm-*: Only clone the repos that have the specified branchRenato Golin
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
2017-05-15tcwg-llvm-build.sh: updated the wrong argumentRenato Golin
Change-Id: Ie9cb93e213bdba75ab84d755852cfe220aa5ea7b
2017-05-15tcwg-llvm-staged-build.yaml: Add repo/branch optionRenato Golin
Change-Id: Ie81de5b7ce4e87331a4602b7e6deada91a273942
2017-05-12tcwg-llvm-*: Add compiler option, setting CC/CXXRenato Golin
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
2017-05-08tcwg-llvm-*: Always use build ID and rev to identify buildsRenato Golin
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
2017-05-05tcwg-llvm-*: Move toolchain name logic to toolchain_fileRenato Golin
Change-Id: I3742ada9e0c2e6342355a5d7294dd03648fa8ac2
2017-05-05tcwg-llvm-*: include common in the same basedirRenato Golin
Change-Id: I422ce0666089864ab50bf065af171c7ff0e4d1dd
2017-05-05tcwg-llvm-build.sh: Use either id or rev for naming tarballs for nowRenato Golin
Change-Id: I1e345109db5067af9924758b04df40d8f6895e27
2017-05-05tcwg-llvm-*: Additional argument to download_toolchainRenato Golin
Change-Id: Iedb0a501989dbaa6fd24d728d92e66a8dba1f9aa
2017-05-04tcwg-llvm-*: Moving common stuff outRenato Golin
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
2017-04-26tcwg-llvm-build.sh: Simplify buildid/revision/urlRenato Golin
Change-Id: I3e6c6b12eb4f0c29e1a33f9fced10d36f542cf62
2017-04-25tcwg-llvm-build.sh: Add wget progressRenato Golin
Change-Id: I00f472b2b39ffa4761a72606bfdcc1627a186905
2017-04-21tcwg-llvm-build.sh: Drop depth to make SVN revision workRenato Golin
Change-Id: Ib8208bf6ed183bc54f4944f0945966ff5d1c7d51
2017-04-20tcwg-llvm-*: Fix bash typoRenato Golin
Change-Id: I3687c55f3719e26dfce1f7113be3c35f93a6ff65
2017-04-20tcwg-llvm-build.sh: Use --revision argumentRenato Golin
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
2017-04-20tcwg-llvm-*: Use reference git cloneRenato Golin
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
2017-04-13tcwg-llvm-*: Add --depth 1 to git clonesRenato Golin
Change-Id: Id8e3211856c35a1cbc1da8e264a83e5c8d72100f
2017-04-11tcwg-llvm-*: Fix toolchain argumentRenato Golin
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
2017-03-31tcwg-llvm-build.sh: Workspace base dir for scpRenato Golin
Change-Id: I4cd8f25547037be2fa027daa0f046f1cac4554cb
2017-03-31tcwg-llvm-build.sh: Large refactor, simplifying the script a lotRenato Golin
* 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
2017-03-30tcwg-llvm-build.sh: avoid using DESTDIR with ninjaRenato Golin
Change-Id: I0d475cf8e0f054eb645d464610c5708a49601f5e
2017-03-23tcwg-llvm-build.sh: Adding new toolchain parameterRenato Golin
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
2017-03-22tcwg-llvm-build.sh: Change filesever URL to .tcwglabRenato Golin
Change-Id: Idd7d03ca98859e8039fadabc7178acd6f93be4c4
2017-03-22tcwg-llvm-build.sh: Push tar ball to dev-01Renato Golin
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
2017-03-20tcwg-llvm-build.sh: don't quote cmake options twiceRenato Golin
Change-Id: Idfc1596e7aa395cab2f8601787f5ec0ec5ad45cb
2017-03-17tcwg-llvm-build.sh: Fix clone/install, add logsRenato Golin
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
2017-03-16[LLVM] Adds barebones for building LLVM on JenkinsRenato Golin
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