-
-
Notifications
You must be signed in to change notification settings - Fork 751
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
Add GHA workflow to validate pants BUILD files #5732
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
--- | ||
name: Validate Pants Metadata | ||
|
||
on: | ||
# temporarily only allow manual runs until we have BUILD files and lockfiles | ||
workflow_dispatch: | ||
#push: | ||
# branches: | ||
# # only on merges to master branch | ||
# - master | ||
# # and version branches, which only include minor versions (eg: v3.4) | ||
# - v[0-9]+.[0-9]+ | ||
# tags: | ||
# # also version tags, which include bugfix releases (eg: v3.4.0) | ||
# - v[0-9]+.[0-9]+.[0-9]+ | ||
#pull_request: | ||
# type: [opened, reopened, edited] | ||
# branches: | ||
# # Only for PRs targeting those branches | ||
# - master | ||
# - v[0-9]+.[0-9]+ | ||
|
||
jobs: | ||
pants-tailor: | ||
name: Make sure pants BUILD files are up-to-date | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v2 | ||
with: | ||
# a test uses a submodule, and pants needs access to it to calculate deps. | ||
submodules: 'true' | ||
|
||
- name: Initialize Pants and its GHA caches | ||
uses: pantsbuild/actions/init-pants@c0ce05ee4ba288bb2a729a2b77294e9cb6ab66f7 | ||
# This action adds an env var to make pants use both pants.ci.toml & pants.toml. | ||
# This action also creates 3 GHA caches (1 is optional). | ||
# - `pants-setup` has the bootsrapped pants install | ||
# - `pants-named-caches` has pip/wheel and PEX caches | ||
# - `pants-lmdb-store` has the fine-grained process cache. | ||
Comment on lines
+34
to
+40
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. /~https://github.com/pantsbuild/actions/tree/main/init-pants The action handles installing pants, adding the One of these GHA cahces will include the pip cache, so we will also be able to simplify our cache usage in other workflows once we are using pants everywhere. |
||
# If we ever use a remote cache, then we can drop this. | ||
# Otherwise, we may need an additional workflow or job to delete old caches | ||
# if they are not expiring fast enough, and we hit the GHA 10GB per repo max. | ||
with: | ||
# To ignore a bad cache, bump the cache* integer. | ||
gha-cache-key: cache0-BUILD | ||
# This hash should include all of our lockfiles so that the pip/pex caches | ||
# get invalidated on any transitive dependency update. | ||
named-caches-hash: ${{ hashFiles('requirements.txt' }} | ||
# enable the optional lmdb_store cache since we're not using remote caching. | ||
cache-lmdb-store: 'true' | ||
Comment on lines
+50
to
+51
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If we experience any issues with the 10GB GHA cache limit (a per-repo limit), we may need to add a workflow that periodically clears out older unused caches - Github expires unused caches after 7 days, but we might want a shorter timespan, as this cache is a per-commit cache. We can also bump the |
||
|
||
- name: Check BUILD files | ||
run: | | ||
./pants tailor --check update-build-files --check :: | ||
|
||
- name: Upload pants log | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: pants-log-py${{ matrix.python-version }} | ||
path: .pants.d/pants.log | ||
if: always() # We want the log even on failures. | ||
Comment on lines
+57
to
+62
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In my experience, this log is often nearly empty, but it can be very useful when debugging CI issues. Adding this step is recommended here: https://www.pantsbuild.org/docs/using-pants-in-ci#tip-store-pants-logs-as-artifacts We will want to add this step in each workflow that runs pants. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# This config is for CI. It extends the config in pants.toml. | ||
# See https://www.pantsbuild.org/docs/using-pants-in-ci | ||
|
||
[GLOBAL] | ||
# Colors often work in CI, but the shell is usually not a TTY so Pants | ||
# doesn't attempt to use them by default. | ||
colors = true | ||
Comment on lines
+4
to
+7
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This was copied from the sample in the docs: https://www.pantsbuild.org/docs/using-pants-in-ci#configuring-pants-for-ci-pantscitoml-optional |
||
|
||
[stats] | ||
# "print metrics of your cache's performance at the end of the run, | ||
# including the number of cache hits and the total time saved thanks | ||
# to caching" | ||
log = true | ||
Comment on lines
+9
to
+13
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Recommended under "Tip: check cache performance with [stats].log" at the end of the Directories to Cache section of the docs. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We will uncomment this and remove
workflow_dispatch
when we add the BUILD files.