Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI script improvements #1547

Merged
merged 4 commits into from
Nov 3, 2022
Merged

CI script improvements #1547

merged 4 commits into from
Nov 3, 2022

Conversation

ashay
Copy link
Collaborator

@ashay ashay commented Nov 2, 2022

This PR contains four commits (see commit messages for details):

  • ci: update versions of external actions
  • ci: replace deprecated action with bash commands
  • ci: use smaller ccache artifacts to reduce evictions
  • ci: use consistent platform identifiers

@dellis23 I added you as a reviewer because I changed one of your workflows in the last commit so that the workflow runs on ubuntu-22.04 for consistency with the rest of the workflows. Let me know if you'd like me to revert the change. Thanks!

ashay added 3 commits November 2, 2022 09:19
Node.js 12 actions are deprecated and will eventually go away, so this
patch bumps the old actions to their latest versions that use Node.js
16.
The llvm/actions/install-ninja action uses Node.js 12, which is
deprecated.  Since that action is not updated to work with Node.js 16,
this patch replaces that action with equivalent bash commands to install
Ninja.
Over time, our ccache sizes have grown quite large (some as large as
1.3 GB), which results in us routinely exceeding GitHub's limits, thus
triggering frequent cache evictions.  As a result, cache downloads and
uploads take unnecessary long, in addition to fewer cache entries being
available.

Based on experiments on a clean cache state, it appears that we need
less than 300 MB of (compressed) ccache artifacts for each build type.
Anything larger than that will accrue changes from the past that aren't
needed.

To alleviate the cache burden, this patch sets the maximum ccache size
to be 300 MB.  This change should not affect the success or failure of
our builds.  I will monitor the build times to check whether this change
causes any performance degradation.
@ashay ashay requested review from dellis23 and powderluv November 2, 2022 14:52
@dellis23
Copy link
Collaborator

dellis23 commented Nov 2, 2022

22.04 LGTM

@powderluv
Copy link
Collaborator

I like -latest to get autoupdated until it fails but I understand why it has to be pinned :D LGTM

@ashay
Copy link
Collaborator Author

ashay commented Nov 2, 2022

I like -latest to get autoupdated until it fails but I understand why it has to be pinned :D LGTM

Thanks, that makes sense. I don't mind using -latest, as long as it is consistent. Let me update the last commit to switch all of the platforms to -latest.

Prior to this patch, some of our builds ran on `ubuntu-latest`, while
some others ran on `ubuntu-20.04` and others ran on `ubuntu-22.04`, with
similar situations for macOS and windows.  This patch instead sets all
Linux builds to run on `ubuntu-latest`, all macOS builds to run on
`macos-latest`, and all Windows builds to run on `windows-latest`, to
make debugging future CI failures a little easier.
@ashay ashay merged commit f847642 into llvm:main Nov 3, 2022
@ashay ashay deleted the ashay/fix-ccache-params branch November 3, 2022 02:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants