about summary refs log tree commit diff
path: root/src/ci/scripts/upload-artifacts.sh
AgeCommit message (Collapse)AuthorLines
2023-03-09record the cpu usage in a gitignored directoryPietro Albini-1/+1
2022-06-05Auto merge of #93717 - pietroalbini:pa-ci-profiler, r=Mark-Simulacrumbors-4/+9
Add build metrics to rustbuild This PR adds a new module of rustbuild, `ci_profiler`, whose job is to gather as much information as possible about the CI build as possible and store it in a JSON file uploaded to `ci-artifacts`. Right now for each step it collects: * Type name and debug representation of the `Step` object. * Duration of the step (excluding child steps). * Systemwide CPU stats for the duration of the step (both single core and all cores). * Which child steps were executed. This is capable of replacing both the scripts to collect CPU stats and the `[TIMING]` lines in build logs (not yet removed, until we port our tooling to use the CI profiler). The format is also extensible to be able in the future to collect more information. r? `@Mark-Simulacrum`
2022-05-22fix uploading build metrics on ciPietro Albini-5/+7
2022-05-08Switch CI bucket to intelligent tieringMark Rousskov-1/+2
We currently upload approximately 166 GB/day into this bucket (estimate based on duration of storage and total current size). My estimate is that this change should decrease our costs (which are currently in credits) and is in the worst case (if all objects are brought into hot storage due to unanticipated frequent access) only going to add an additional ~$4 to the monthly bill. If access is rare (as expected) to most objects then we expect to save approximately ~$350/month (after this change takes full effect in ~168 days).
2022-05-02enable build.metrics on CIPietro Albini-0/+3
2019-10-30ci: move toolstates.json to /tmp/toolstate/ and docker mount itPietro Albini-1/+1
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-10-29Apply suggestions from lzutaoPietro Albini-3/+3
Co-Authored-By: lzutao <taolzu@gmail.com>
2019-10-29ci: upload toolstates.json to rust-lang-ci2Pietro Albini-0/+5
Uploading the toolstate data for each commit will help our release tooling understand which components are failing, to possibly skip shipping broken tools to users.
2019-10-29ci: extract uploading artifacts into a scriptPietro Albini-0/+36