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: Split out workflows #1485

Merged
merged 2 commits into from
Feb 11, 2022
Merged

ci: Split out workflows #1485

merged 2 commits into from
Feb 11, 2022

Conversation

olix0r
Copy link
Member

@olix0r olix0r commented Feb 11, 2022

This change splits out our GitHub workflows to run conditionally,
depending on which files change in a pull request.

  • build: builds the proxy in release mode wh
  • check-each: checks that each Cargo.toml checks cleanly on its own.
    This used to be a serial task, but has been converted to a matrix job.
  • deps: Only runs on dependency changes to check cargo-deny
  • integration: Runs integration tests on code & dependency changes.
  • lint: Runs clippy, fmt, and doc on all source changes. Not run on
    dependency changes.
  • test: Runs unit tests on code and dependency changes

This prevents doing needless work on dependency changes (as these are
extremely common) and makes it easier to rerun narrower workflows, if
necessary. The best part of this, though, is that we've made
check-each a matrix job so that its tests can be parallelized.

We'll update the github settings to make none of these checks strictly
required.

Signed-off-by: Oliver Gould ver@buoyant.io

@olix0r olix0r requested a review from a team February 11, 2022 02:01
@olix0r olix0r changed the base branch from ver/beta-nightly to main February 11, 2022 02:03
@codecov-commenter

This comment was marked as off-topic.

@olix0r olix0r force-pushed the ver/split-ci branch 2 times, most recently from 2660db1 to 150892a Compare February 11, 2022 15:56
This change splits out our GitHub workflows to run conditionally,
depending on which files change in a pull request.

* `build`: builds the proxy in release mode wh
* `check-each`: checks that each Cargo.toml checks cleanly on its own.
  This used to be a serial task, but has been converted to a matrix job.
* `deps`: Only runs on dependency changes to check cargo-deny
* `integration`: Runs integration tests on code & dependency changes.
* `lint`: Runs clippy, fmt, and doc on all source changes. Not run on
  dependency changes.
* `test`: Runs unit tests on code and dependency changes

This prevents doing needless work on dependency changes (as these are
extremely common) and makes it easier to rerun narrower workflows, if
necessary. The best part of this, though, is that we've made
`check-each` a matrix job so that its tests can be parallelized.

We'll update the github settings to make none of these checks strictly
required.

Signed-off-by: Oliver Gould <ver@buoyant.io>
@olix0r olix0r changed the title ci: Split out worflows ci: Split out workflows Feb 11, 2022
Copy link
Contributor

@hawkw hawkw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

overall, this looks good to me. i had some assorted questions and comments, but the only potential blocker is that it looks like workflows may not run on main after merging --- is that intended, or do we need to fix it?

image: docker://rust:1.56.1-buster
strategy:
matrix:
crate: ${{ fromJson(needs.enumerate.outputs.crates) }}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh, this is cool, i didn't know you could do that!

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, extremely cool

.github/workflows/check-each.yml Show resolved Hide resolved
.github/workflows/check-each.yml Show resolved Hide resolved
.github/workflows/lint.yml Show resolved Hide resolved
.github/workflows/lint.yml Show resolved Hide resolved

env:
CARGO_INCREMENTAL: 0
CARGO_NET_RETRY: 10
DEBIAN_FRONTEND: noninteractive
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what does this do? do we want to add it to other workflows as well?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It ensures that apt will never try to ask for user input. I think this is now in all of the other workflows that use apt

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, got it, thanks. maybe worth a comment?

@olix0r
Copy link
Member Author

olix0r commented Feb 11, 2022

Note that CI does not currently run on pushes to main. I think this is fine, as it's redundant (we'll always have run CI on branches before merge and we don't allow pushes directly to main).

Copy link
Contributor

@hawkw hawkw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since the change to not build pushes to main is intentional, this looks good to me! no issues here!

@olix0r olix0r requested a review from a team as a code owner February 11, 2022 19:12
@olix0r olix0r merged commit 3d26ad7 into main Feb 11, 2022
@olix0r olix0r deleted the ver/split-ci branch February 11, 2022 19:13
olix0r added a commit to linkerd/linkerd2 that referenced this pull request Feb 14, 2022
This release updates the proxy to avoid time substractions that are
liable to panic.

---

* build(deps): bump serde_json from 1.0.75 to 1.0.78 (linkerd/linkerd2-proxy#1440)
* dependabot: Allow updates for transitive dependencies (linkerd/linkerd2-proxy#1443)
* build(deps): bump libc from 0.2.113 to 0.2.114 (linkerd/linkerd2-proxy#1444)
* devcontainer: Fix kubectl path (linkerd/linkerd2-proxy#1441)
* build(deps): bump serde from 1.0.135 to 1.0.136 (linkerd/linkerd2-proxy#1445)
* build(deps): bump tracing-subscriber from 0.3.6 to 0.3.7 (linkerd/linkerd2-proxy#1446)
* build(deps): bump h2 from 0.3.10 to 0.3.11 (linkerd/linkerd2-proxy#1448)
* build(deps): bump socket2 from 0.4.3 to 0.4.4 (linkerd/linkerd2-proxy#1447)
* build(deps): bump tokio from 1.15.0 to 1.16.1 (linkerd/linkerd2-proxy#1450)
* build(deps): bump libc from 0.2.114 to 0.2.115 (linkerd/linkerd2-proxy#1449)
* build(deps): bump EmbarkStudios/cargo-deny-action from 1.2.9 to 1.2.10 (linkerd/linkerd2-proxy#1451)
* deny: Don't skip everything in hyper's tree (linkerd/linkerd2-proxy#1455)
* build(deps): bump libc from 0.2.115 to 0.2.116 (linkerd/linkerd2-proxy#1453)
* build(deps): bump lock_api from 0.4.5 to 0.4.6 (linkerd/linkerd2-proxy#1454)
* build(deps): bump parking_lot from 0.11.2 to 0.12.0 (linkerd/linkerd2-proxy#1452)
* Ban uses of `Instant` operations that can panic (linkerd/linkerd2-proxy#1456)
* clippy: Disallow lock and instant types from `std` (linkerd/linkerd2-proxy#1458)
* build(deps): bump libc from 0.2.116 to 0.2.117 (linkerd/linkerd2-proxy#1459)
* build(deps): bump tracing from 0.1.29 to 0.1.30 (linkerd/linkerd2-proxy#1462)
* build(deps): bump clang-sys from 1.3.0 to 1.3.1 (linkerd/linkerd2-proxy#1461)
* build(deps): bump futures from 0.3.19 to 0.3.21 (linkerd/linkerd2-proxy#1468)
* build(deps): bump tracing-subscriber from 0.3.7 to 0.3.8 (linkerd/linkerd2-proxy#1465)
* dependabot: Ignore leaf updates (linkerd/linkerd2-proxy#1464)
* build(deps): bump rustls-pemfile from 0.2.1 to 0.3.0 (linkerd/linkerd2-proxy#1470)
* build(deps): bump unicode-segmentation from 1.8.0 to 1.9.0 (linkerd/linkerd2-proxy#1471)
* build(deps): bump crc32fast from 1.3.1 to 1.3.2 (linkerd/linkerd2-proxy#1473)
* build(deps): bump autocfg from 1.0.1 to 1.1.0 (linkerd/linkerd2-proxy#1472)
* Update the devcontainer (linkerd/linkerd2-proxy#1474)
* build(deps): bump httparse from 1.5.1 to 1.6.0 (linkerd/linkerd2-proxy#1477)
* build(deps): bump trust-dns-resolver from 0.21.0-alpha.4 to 0.21.0-alpha.5 (linkerd/linkerd2-proxy#1475)
* build(deps): bump arbitrary from 1.0.3 to 1.1.0 (linkerd/linkerd2-proxy#1482)
* build(deps): bump derive_arbitrary from 1.0.2 to 1.1.0 (linkerd/linkerd2-proxy#1481)
* build(deps): bump EmbarkStudios/cargo-deny-action from 1.2.10 to 1.2.11 (linkerd/linkerd2-proxy#1480)
* Bump runtime image so that linkerd-await 0.2.5 is used (linkerd/linkerd2-proxy#1479)
* ci: Add a toolchain workflow (linkerd/linkerd2-proxy#1484)
* build(deps): bump ntapi from 0.3.6 to 0.3.7 (linkerd/linkerd2-proxy#1488)
* build(deps): bump hyper from 0.14.16 to 0.14.17 (linkerd/linkerd2-proxy#1486)
* Change CODEOWNERS to @linkerd/maintainers (linkerd/linkerd2-proxy#1489)
* ci: Add workflows to run beta, nightly builds (linkerd/linkerd2-proxy#1483)
* ci: Split out worflows (linkerd/linkerd2-proxy#1485)
* build(deps): update tokio-util to v0.7 (linkerd/linkerd2-proxy#1490)
* ci: Only run checks on Cargo.toml changes (linkerd/linkerd2-proxy#1491)
* build(deps): bump rand from 0.8.4 to 0.8.5 (linkerd/linkerd2-proxy#1496)
olix0r added a commit to linkerd/linkerd2 that referenced this pull request Feb 15, 2022
This release updates the proxy to avoid time substractions that are
liable to panic.

---

* build(deps): bump serde_json from 1.0.75 to 1.0.78 (linkerd/linkerd2-proxy#1440)
* dependabot: Allow updates for transitive dependencies (linkerd/linkerd2-proxy#1443)
* build(deps): bump libc from 0.2.113 to 0.2.114 (linkerd/linkerd2-proxy#1444)
* devcontainer: Fix kubectl path (linkerd/linkerd2-proxy#1441)
* build(deps): bump serde from 1.0.135 to 1.0.136 (linkerd/linkerd2-proxy#1445)
* build(deps): bump tracing-subscriber from 0.3.6 to 0.3.7 (linkerd/linkerd2-proxy#1446)
* build(deps): bump h2 from 0.3.10 to 0.3.11 (linkerd/linkerd2-proxy#1448)
* build(deps): bump socket2 from 0.4.3 to 0.4.4 (linkerd/linkerd2-proxy#1447)
* build(deps): bump tokio from 1.15.0 to 1.16.1 (linkerd/linkerd2-proxy#1450)
* build(deps): bump libc from 0.2.114 to 0.2.115 (linkerd/linkerd2-proxy#1449)
* build(deps): bump EmbarkStudios/cargo-deny-action from 1.2.9 to 1.2.10 (linkerd/linkerd2-proxy#1451)
* deny: Don't skip everything in hyper's tree (linkerd/linkerd2-proxy#1455)
* build(deps): bump libc from 0.2.115 to 0.2.116 (linkerd/linkerd2-proxy#1453)
* build(deps): bump lock_api from 0.4.5 to 0.4.6 (linkerd/linkerd2-proxy#1454)
* build(deps): bump parking_lot from 0.11.2 to 0.12.0 (linkerd/linkerd2-proxy#1452)
* Ban uses of `Instant` operations that can panic (linkerd/linkerd2-proxy#1456)
* clippy: Disallow lock and instant types from `std` (linkerd/linkerd2-proxy#1458)
* build(deps): bump libc from 0.2.116 to 0.2.117 (linkerd/linkerd2-proxy#1459)
* build(deps): bump tracing from 0.1.29 to 0.1.30 (linkerd/linkerd2-proxy#1462)
* build(deps): bump clang-sys from 1.3.0 to 1.3.1 (linkerd/linkerd2-proxy#1461)
* build(deps): bump futures from 0.3.19 to 0.3.21 (linkerd/linkerd2-proxy#1468)
* build(deps): bump tracing-subscriber from 0.3.7 to 0.3.8 (linkerd/linkerd2-proxy#1465)
* dependabot: Ignore leaf updates (linkerd/linkerd2-proxy#1464)
* build(deps): bump rustls-pemfile from 0.2.1 to 0.3.0 (linkerd/linkerd2-proxy#1470)
* build(deps): bump unicode-segmentation from 1.8.0 to 1.9.0 (linkerd/linkerd2-proxy#1471)
* build(deps): bump crc32fast from 1.3.1 to 1.3.2 (linkerd/linkerd2-proxy#1473)
* build(deps): bump autocfg from 1.0.1 to 1.1.0 (linkerd/linkerd2-proxy#1472)
* Update the devcontainer (linkerd/linkerd2-proxy#1474)
* build(deps): bump httparse from 1.5.1 to 1.6.0 (linkerd/linkerd2-proxy#1477)
* build(deps): bump trust-dns-resolver from 0.21.0-alpha.4 to 0.21.0-alpha.5 (linkerd/linkerd2-proxy#1475)
* build(deps): bump arbitrary from 1.0.3 to 1.1.0 (linkerd/linkerd2-proxy#1482)
* build(deps): bump derive_arbitrary from 1.0.2 to 1.1.0 (linkerd/linkerd2-proxy#1481)
* build(deps): bump EmbarkStudios/cargo-deny-action from 1.2.10 to 1.2.11 (linkerd/linkerd2-proxy#1480)
* Bump runtime image so that linkerd-await 0.2.5 is used (linkerd/linkerd2-proxy#1479)
* ci: Add a toolchain workflow (linkerd/linkerd2-proxy#1484)
* build(deps): bump ntapi from 0.3.6 to 0.3.7 (linkerd/linkerd2-proxy#1488)
* build(deps): bump hyper from 0.14.16 to 0.14.17 (linkerd/linkerd2-proxy#1486)
* Change CODEOWNERS to @linkerd/maintainers (linkerd/linkerd2-proxy#1489)
* ci: Add workflows to run beta, nightly builds (linkerd/linkerd2-proxy#1483)
* ci: Split out worflows (linkerd/linkerd2-proxy#1485)
* build(deps): update tokio-util to v0.7 (linkerd/linkerd2-proxy#1490)
* ci: Only run checks on Cargo.toml changes (linkerd/linkerd2-proxy#1491)
* build(deps): bump rand from 0.8.4 to 0.8.5 (linkerd/linkerd2-proxy#1496)
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