Skip to content

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

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.

4 participants