Skip to content

Conversation

@Bromeon
Copy link
Member

@Bromeon Bromeon commented Sep 14, 2021

CI improvements:

  • Run time optimization (16min -> 6-11min)

    • Job-local cache of Rust, LLVM, Godot
    • Avoid unnecessary steps (e.g. cargo check instead of build, download LLVM only on Windows)
    • Parallelize independent steps into jobs (e.g. test and check-release)
    • Disable incremental compilation
  • Code ergonomics

    • Consistent use of external actions and their versions
    • Own composite actions for Rust and LLVM
    • Comments and explanations
  • New workflow Minimal CI

    • Runs automatically on PRs
    • Basic checks, unit tests and Godot integration tests on Linux
    • Very fast feedback (typically 2.5 - 4min)
  • Existing workflow Full CI

    • Fix nightly jobs not actually using nightly toolchain
    • Updated versions of external actions
    • Minor restructuring/grouping
    • Option to fast-fail on job and workflow level
    • Run tests against MSRV (excluding UI tests with expected compiler errors)
    • Naming of jobs/steps, colorized Cargo output

@Bromeon Bromeon changed the title Feature/ci build time CI overhaul Sep 14, 2021
@Bromeon Bromeon added feature Adds functionality to the library c: tools Component: tooling, tests, IDEs, Cargo, Rust ecosystem labels Sep 14, 2021
@Bromeon
Copy link
Member Author

Bromeon commented Sep 14, 2021

bors try

bors bot added a commit that referenced this pull request Sep 14, 2021
@bors
Copy link
Contributor

bors bot commented Sep 14, 2021

try

Build succeeded:

@Bromeon Bromeon force-pushed the feature/ci-build-time branch 9 times, most recently from 6e13119 to 8497f14 Compare September 14, 2021 23:03
@jacobsky
Copy link
Contributor

@Bromeon The changes look good to me. It looks like the checks have come back as successful. There's quite a few commits, so it might be worth squashing them though :)

@Bromeon Bromeon force-pushed the feature/ci-build-time branch 7 times, most recently from 6c7c249 to 2b68389 Compare September 15, 2021 09:15
@Bromeon
Copy link
Member Author

Bromeon commented Sep 15, 2021

bors try

bors bot added a commit that referenced this pull request Sep 15, 2021
@Bromeon
Copy link
Member Author

Bromeon commented Sep 15, 2021

Why didn't bors report failure? Let's try again (test-ios is currently broken)

bors try

@bors
Copy link
Contributor

bors bot commented Sep 15, 2021

try

Already running a review

jacobsky
jacobsky previously approved these changes Sep 15, 2021
Copy link
Contributor

@jacobsky jacobsky left a comment

Choose a reason for hiding this comment

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

Looks good to me. It looks like the runs passed as well. Great job!

Squash the commits and let's merge it :)

(You can also not if you want to see your total contributions jump up by 70 :P

@Bromeon
Copy link
Member Author

Bromeon commented Sep 15, 2021

Haha, I'll definitely squash this messy history ;)

bors try-

@Bromeon
Copy link
Member Author

Bromeon commented Sep 15, 2021

bors try

@Bromeon Bromeon force-pushed the feature/ci-build-time branch from 2e6eba3 to 1d1280f Compare September 15, 2021 18:59
bors bot added a commit that referenced this pull request Sep 15, 2021
@bors
Copy link
Contributor

bors bot commented Sep 15, 2021

try

Build succeeded:

@Bromeon Bromeon force-pushed the feature/ci-build-time branch 2 times, most recently from 6c9b6be to c185b10 Compare September 15, 2021 19:36
@Bromeon
Copy link
Member Author

Bromeon commented Sep 15, 2021

bors r+

bors bot added a commit that referenced this pull request Sep 15, 2021
783: Continuous Integration Overhaul r=Bromeon a=Bromeon

CI improvements:

* Run time optimization (16min -> 6-11min)
  * Job-local cache of Rust, LLVM, Godot
  * Avoid unnecessary steps (e.g. cargo check instead of build, download LLVM only on Windows)
  * Parallelize independent steps into jobs (e.g. test and check-release)
  * Disable incremental compilation

* Code ergonomics
  * Consistent use of external actions and their versions
  * Own composite actions for Rust and LLVM
  * Comments and explanations

* New workflow `Minimal CI`
  * Runs automatically on PRs
  * Basic checks, unit tests and Godot integration tests on Linux
  * Very fast feedback (typically 2.5 - 4min)

* Existing workflow `Full CI`
  * Updated versions of external actions
  * Minor restructuring/grouping
  * Option to fast-fail on job and workflow level
  * Run tests against MSRV (excluding UI tests with expected compiler errors)
  * Naming of jobs/steps, colorized Cargo output


Co-authored-by: Jan Haller <[email protected]>
@Bromeon Bromeon force-pushed the feature/ci-build-time branch from c185b10 to f755f97 Compare September 15, 2021 19:37
@bors
Copy link
Contributor

bors bot commented Sep 15, 2021

Canceled.

@Bromeon
Copy link
Member Author

Bromeon commented Sep 15, 2021

bors r+

bors bot added a commit that referenced this pull request Sep 15, 2021
783: Continuous Integration Overhaul r=Bromeon a=Bromeon

CI improvements:

* Run time optimization (16min -> 6-11min)
  * Job-local cache of Rust, LLVM, Godot
  * Avoid unnecessary steps (e.g. cargo check instead of build, download LLVM only on Windows)
  * Parallelize independent steps into jobs (e.g. test and check-release)
  * Disable incremental compilation

* Code ergonomics
  * Consistent use of external actions and their versions
  * Own composite actions for Rust and LLVM
  * Comments and explanations

* New workflow `Minimal CI`
  * Runs automatically on PRs
  * Basic checks, unit tests and Godot integration tests on Linux
  * Very fast feedback (typically 2.5 - 4min)

* Existing workflow `Full CI`
  * Fix nightly jobs not actually using nightly toolchain
  * Updated versions of external actions
  * Minor restructuring/grouping
  * Option to fast-fail on job and workflow level
  * Run tests against MSRV (excluding UI tests with expected compiler errors)
  * Naming of jobs/steps, colorized Cargo output


Co-authored-by: Jan Haller <[email protected]>
@bors
Copy link
Contributor

bors bot commented Sep 15, 2021

Build failed:

@Bromeon
Copy link
Member Author

Bromeon commented Sep 15, 2021

(canceled -- I thought I can fix the nightly tests, but actually UI tests differ, meaning there's no point)
bors r+

bors bot added a commit that referenced this pull request Sep 15, 2021
783: Continuous Integration Overhaul r=Bromeon a=Bromeon

CI improvements:

* Run time optimization (16min -> 6-11min)
  * Job-local cache of Rust, LLVM, Godot
  * Avoid unnecessary steps (e.g. cargo check instead of build, download LLVM only on Windows)
  * Parallelize independent steps into jobs (e.g. test and check-release)
  * Disable incremental compilation

* Code ergonomics
  * Consistent use of external actions and their versions
  * Own composite actions for Rust and LLVM
  * Comments and explanations

* New workflow `Minimal CI`
  * Runs automatically on PRs
  * Basic checks, unit tests and Godot integration tests on Linux
  * Very fast feedback (typically 2.5 - 4min)

* Existing workflow `Full CI`
  * Fix nightly jobs not actually using nightly toolchain
  * Updated versions of external actions
  * Minor restructuring/grouping
  * Option to fast-fail on job and workflow level
  * Run tests against MSRV (excluding UI tests with expected compiler errors)
  * Naming of jobs/steps, colorized Cargo output


Co-authored-by: Jan Haller <[email protected]>
@Bromeon Bromeon force-pushed the feature/ci-build-time branch from f755f97 to 548aded Compare September 15, 2021 20:00
@bors
Copy link
Contributor

bors bot commented Sep 15, 2021

Canceled.

@Bromeon Bromeon force-pushed the feature/ci-build-time branch 2 times, most recently from ba8471f to 3a48b34 Compare September 15, 2021 20:33
@Bromeon
Copy link
Member Author

Bromeon commented Sep 15, 2021

bors try

bors bot added a commit that referenced this pull request Sep 15, 2021
@bors
Copy link
Contributor

bors bot commented Sep 15, 2021

try

Build succeeded:

* Run time optimization (16min -> 6-11min)
  * Job-local cache of Rust, LLVM, Godot
  * Avoid unnecessary steps (e.g. cargo check instead of build, download LLVM only on Windows)
  * Parallelize independent steps into jobs (e.g. test and check-release)
  * Disable incremental compilation

* Code ergonomics
  * Consistent use of external actions and their versions
  * Own composite actions for Rust and LLVM
  * Comments and explanations

* New workflow `Minimal CI`
  * Runs automatically on PRs
  * Basic checks, unit tests and Godot integration tests on Linux
  * Very fast feedback (typically 2.5 - 4min)

* Existing workflow `Full CI`
  * Fix nightly jobs not actually using nightly toolchain
  * Updated versions of external actions
  * Minor restructuring/grouping
  * Option to fast-fail on job and workflow level
  * Run tests against MSRV (excluding UI tests with expected compiler errors)
  * Naming of jobs/steps, colorized Cargo output
@Bromeon Bromeon force-pushed the feature/ci-build-time branch from 3a48b34 to bf41471 Compare September 15, 2021 20:51
@Bromeon
Copy link
Member Author

Bromeon commented Sep 15, 2021

bors r+

@bors
Copy link
Contributor

bors bot commented Sep 15, 2021

Build succeeded:

@bors bors bot merged commit 3ddb6e6 into godot-rust:master Sep 15, 2021
@Bromeon Bromeon deleted the feature/ci-build-time branch September 15, 2021 21:06
@Bromeon Bromeon added c: ci Component: CI and automation and removed c: tools Component: tooling, tests, IDEs, Cargo, Rust ecosystem labels Oct 14, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c: ci Component: CI and automation feature Adds functionality to the library

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants