about summary refs log tree commit diff
path: root/src/ci/docker/run.sh
AgeCommit message (Collapse)AuthorLines
2023-11-30Fix cg_gcc CI runGuillaume Gomez-5/+0
2023-11-29Re-enable `rustc_codegen_gcc` tests in CIJosh Stone-3/+3
2023-11-04pass `CODEGEN_BACKENDS` to dockerRémy Rakic-0/+1
2023-11-03Revert "Auto merge of #117328 - lqd:cranelift-rocket, r=Mark-Simulacrum"Ralf Jung-1/+0
This reverts commit 1dfb6b162be402d8ca37e8aad4f58898b44e3a15, reversing changes made to bcb5798dd890a691644af9d371f3bd7fcc465584. That commit broke generating nightly rustc docs. Revert it until we can figure out how to have both, cranelift and docs.
2023-11-03Set some environment variables value only if ENABLE_GCC_CODEGEN is setGuillaume Gomez-1/+14
2023-11-02Rename `SKIP_CODEGEN_TESTS` into `ENABLE_GCC_CODEGEN`Guillaume Gomez-1/+1
2023-11-02Run codegen tests outside if not llvm-15Guillaume Gomez-0/+1
2023-10-28pass `CODEGEN_BACKENDS` to dockerRémy Rakic-0/+1
2023-10-15Fix podman detection in CI scriptsNilstrieb-1/+1
When docker-podman compat was set up in a way that causes "docker" to be the argv[0] of podman, the previous detection did not work. This was for example the case in the compat package from nixpkgs. This checks the output and should work everywhere.
2023-10-02Add artifact size and step duration summaries from `opt-dist` to github job ↵Jakub Beránek-0/+6
summary
2023-08-17CI: add more debug logging to Docker cachingJakub Beránek-4/+10
2023-08-12CI: fix Docker layer cachingJakub Beránek-0/+11
2023-08-02Add more context to `quit_if_file_exists` in `configure.py`Trevor Gross-0/+1
Currently, having a dirty `obj/` directory is sufficient to abort CI tests. This results in errors like the following: ``` ... == end clock drift check == sccache: Starting the server... configure: error: Existing 'config.toml' detected. == clock drift check == ... ``` This is subtle and doesn't give a good idea as to what causes the issue. With this patch, the error becomes more prominent and a resolution is suggested: ``` == end clock drift check == sccache: Starting the server... configure: ERROR: Existing 'config.toml' detected. Exiting Is objdir '/home/tmgross/projects/rust/obj' clean? == clock drift check == ```
2023-07-14Add even more GHA log groupsjyn-1/+3
This also adds a dynamic check that we don't emit nested groups, since GHA currently doesn't support them.
2023-07-06Auto merge of #112779 - Kobzol:ci-merge-llvm-14, r=pietroalbinibors-0/+1
CI: merge x86_64-gnu-llvm-14 and x86_64-gnu-llvm-14-stage1 CI jobs Another attempt to shorten CI job times. Suggested by `@the8472` [here](https://rust-lang.zulipchat.com/#narrow/stream/242791-t-infra/topic/CI.20usage/near/367172221).
2023-06-19CI: merge x86_64-gnu-llvm-14 and x86_64-gnu-llvm-14-stage1 CI jobsJakub Beránek-0/+1
2023-06-15cleanup more azure leftoversklensy-2/+0
2023-06-01Do not build components unneeded for perf bot in try buildsJakub Beránek-0/+1
2023-04-30Set the AWS region.Eric Huss-0/+1
2022-08-23Use `--userns=keep-id` when "docker" is really podmanJosh Stone-1/+10
Rootless podman creates a separate user namespace, where an inner `LOCAL_USER_ID` will map to a different subuid range on the host. The "keep-id" mode maps the current UID directly into the container. This makes `src/ci/docker/run.sh` work better for testing container images on systems running podman, where "docker" is just a shim.
2021-11-01Ignore files copied from previous stage when generating hash.Hans Kratz-1/+2
2021-10-21Time out docker load after 10 minutes, kill after 12 due to CI hangs.Hans Kratz-1/+4
2021-10-21Debug output before loading docker images as that might hang.Hans Kratz-0/+1
2021-10-21CI: make cache download attempt time out after 10 minutesHans Kratz-1/+2
2021-08-05Remove git fetch command callGuillaume Gomez-4/+6
2021-07-03Only run error code explanation removal check if on CIGuillaume Gomez-3/+7
2021-07-02Add check to ensure error code explanations are not removed anymore even if ↵Guillaume Gomez-0/+5
not emitted
2021-06-07add the x86_64-gnu-stable job to test with stable channelPietro Albini-0/+1
During the 1.52 release process we had to deal with some commits that passed the test suite on the nightly branch but failed on the beta or stable branch. In that case it was due to some UI tests including the channel name in the output, but other changes might also be dependent on the channel. This commit adds a new CI job that runs the Linux x86_64 test suite with the stable branch, ensuring nightly changes also work as stable.
2020-07-08ci: fix context for disabled docker imagesTom Eccles-2/+2
When the dockerfiles were moved into the host-x86_64 directory, paths for COPY commands were updated with the new host-x86_64/ prefix. This suggested that the intended context was src/ci/docker. However, the context for disabled docker images was src/ci/docker/host-x86_64. This broke the new paths and prevented src/ci/docker/scripts from being included in the context at all. This commit corrects this context allowing docker to find the files it needs for COPY commands.
2020-07-03ci: include the architecture in the docker cache keyPietro Albini-0/+4
We're starting to include native aarch64 machines in our CI, but before this commit the architecture wasn't included in the cache key for our Docker images. This means there could be conflicts between images produced on different architectures, hurting our CI times. This commit fixes the problem by including the output of `uname -m` in the cache key.
2020-07-03ci: provide feedback when running an image on the wrong host archPietro Albini-0/+22
2020-07-03ci: move all x86_64 runners to the host-x86_64 directoryPietro Albini-5/+6
We need to add runners designed for an aarch64 host system, and it'd be nice to return an error message if someone tries to run an image designed for an host architecture in another one. To start the work on this, this commit moves all the existing builders in the host-x86_64 directory, and changes the run.sh script to look up the image in the correct directory based on the host architecture.
2020-07-01Add option for local docker testing.Eric Huss-2/+31
2020-05-08Use CDN for ci-caches on downloadMark Rousskov-4/+6
This will reduce costs, as well as lays the groundwork for developers to be able to locally pull the published docker images without needing AWS credentials.
2019-11-22ci: add support for GitHub Actions in the CI scriptsPietro Albini-0/+2
2019-10-30ci: move toolstates.json to /tmp/toolstate/ and docker mount itPietro Albini-0/+2
Before this commit toolstates.json was stored in /tmp and it wasn't mounted outside the build container. That caused uploading the file in the upload-artifacts task to fail, as the file was missing on the host. Mounting /tmp/toolstates.json alone is not the best approach: if the file is missing when the container is started the Docker engine will create a *directory* named /tmp/toolstates.json. The Docker issue could be solved by pre-creating an empty file named /tmp/toolstates.json, but doing that could cause problems if bootstrap fails to generate the file and the toolstate scripts receive an empty JSON. The approach I took in this commit is to instead mount a /tmp/toolstate directory inside Docker, and create the toolstates.json file in it. That also required a small bootstrap change to ensure the directory is created if it's missing.
2019-08-01ci: forward the TOOLSTATE_PUBLISH environment variable inside dockerPietro Albini-0/+1
A recent commit modified toolstate to only push updated data when the TOOLSTATE_PUBLISH environment variable is present. This worked fine on Windows but failed on Linux, since Linux jobs run inside Docker containers and the variable wasn't forwarded inside it. This changes the Docker startup code to set the TOOLSTATE_PUBLISH enviornment variable inside the container if it's present outside.
2019-07-19azure: Prepare configuration for 4-core machinesAlex Crichton-6/+40
This commit updates some of our assorted Azure/CI configuration to prepare for some 4-core machines coming online. We're still in the process of performance testing them to get final numbers, but some changes are worth landing ahead of this. The updates here are: * Use `C:/` instead of `D:/` for submodule checkout since it should have plenty of space and the 4-core machines won't have `D:/` * Update `lzma-sys` to 0.1.14 which has support for VS2019, where 0.1.10 doesn't. * Update `src/ci/docker/run.sh` to work when it itself is running inside of a docker container (see the comment in the file for more info) * Print step timings on the `try` branch in addition to the `auto` branch in. The logs there should be seen by similarly many humans (not many) and can be useful for performance analysis after a `try` build runs. * Install the WIX and InnoSetup tools manually on Windows instead of relying on pre-installed copies on the VM. This gives us more control over what's being used on the Azure cloud right now (we control the version) and in the 4-core machines these won't be pre-installed. Note that on AppVeyor we actually already were installing InnoSetup, we just didn't carry that over on Azure!
2019-07-15ci: Remove Travis/AppVeyor configurationAlex Crichton-9/+0
Now that we've fully moved to Azure Pipelines and bors has been updated to only gate on Azure this commit removes the remaining Travis/AppVeyor support contained in this repository. Most of the deletions here are related to producing better output on Travis by folding certain sections. This isn't supported by Azure so there's no need to keep it around, and if Azure ever adds support we can always add it back!
2019-06-13ci: Enable toolstate tracking on AzureAlex Crichton-0/+1
Currently just run it through its paces but don't actually push to official locations. Instead let's just push to a separate fork (mine) as well as open issues in a separate fork (mine). Make sure that people aren't pinged for these issues as well! This should hopefully ensure that everything is working on Azure and give us a chance to work through any issues that come up.
2019-05-21Use new-style s3 urls in docker download scriptAlex Crichton-1/+1
2019-05-13ci: still use aws for cachesPietro Albini-20/+3
2019-05-10Add Azure PipelinesJohn Erickson-8/+31
2019-03-25[CI] record docker image info for reuseJosh Stone-2/+8
This writes an extra `dist/image-$image.txt` which contains the S3 URL of the cached image and the `sha256` digest of the docker entry point. This will be uploaded with the rest of the deployed artifacts in the Travis `after_success` script.
2019-03-17Calculate Docker cache hash precisely from Dockerfile's dependencieskennytm-1/+12
`src/ci/docker`, so that when files under `dist-x86_64-linux` is changed, its dependent image `dist-i686-linux` will also be rebuilt. However, this ultraconservative solution caused the `dist-i686-linux` to be rebuilt every time an irrelevant Dockerfile (e.g. the PowerPC ones) is changed, which increases the building time beyond 3 hours and forcing a spurious but expected failure. This commit instead parses the Dockerfile itself and look for the actual dependencies. The scripts needs to be copied into the Docker image, which must be done with the COPY command, so we just need to find all lines with a COPY command and add the source file into the hash calculator. Note: this script only handles single-lined COPY command in the form `COPY src1 src2 src3 dst`, since these are the only variant used inside this repository.
2019-02-23Added a connection timeout and speed threshold when downloading the Docker cachekennytm-1/+1
2019-02-18ci: fix docker cache hash collisionPietro Albini-3/+3
Before this commit the hash used to cache docker images was calculated from the image's files and the files in the scripts/ directory. This worked fine when all the files used by an image were in those directories, but some images pull files from other images, causing hash collisions in some cases. This commit changes the hash to include the files of all the docker images, causing a rebuild of all the images when a single one changes. That's a bit heavy-handed, but we have no way to track which files an image pulls in and hash collisions are really painful to deal with.
2019-01-03ci: Upgrade Travis to XenialAlex Crichton-3/+5
In theory we shouldn't require trusty so long as docker continues to work!
2018-12-25Remove licensesMark Rousskov-9/+0
2018-08-16Revert "Use public DNS server instead of 169.254.169.254 on CI."kennytm-4/+0
This reverts commit 32e8bda4e35ada92beab7236d62520e6c6df8596.