Skip to content

Commit 3ddb6e6

Browse files
bors[bot]Bromeon
andauthored
Merge #783
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]>
2 parents 831958c + bf41471 commit 3ddb6e6

File tree

6 files changed

+345
-143
lines changed

6 files changed

+345
-143
lines changed

.github/bors.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
block_labels = ["I-needs-decision", "S-blocked"]
1+
block_labels = ["status: postponed", "status: wontfix"]
22
delete_merged_branches = true
3-
status = ["ci"]
3+
status = ["full-ci"]

.github/composite/llvm/action.yml

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: llvm
2+
description: "Install LLVM + Clang, with caching"
3+
4+
#inputs:
5+
# llvm:
6+
# required: false
7+
# default: 'true'
8+
# description: "Whether LLVM should be installed ('true' by default)"
9+
10+
runs:
11+
using: "composite"
12+
steps:
13+
- name: Cache LLVM and Clang
14+
id: cache-llvm
15+
# Note: conditionals not yet supported; see https://github.com/actions/runner/issues/834
16+
# if: ${{ inputs.llvm == 'true' }}
17+
uses: actions/cache@v2
18+
with:
19+
path: ${{ runner.temp }}/llvm
20+
key: llvm-10.0
21+
- uses: KyleMayes/install-llvm-action@v1
22+
# if: ${{ inputs.llvm == 'true' }}
23+
with:
24+
version: "10.0"
25+
directory: ${{ runner.temp }}/llvm
26+
cached: ${{ steps.cache-llvm.outputs.cache-hit }}

.github/composite/rust/action.yml

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
2+
name: rust
3+
description: "Install Rust toolchain, with caching"
4+
5+
inputs:
6+
rust:
7+
required: false
8+
description: "Rust toolchain, e.g. 'stable' or 'nightly'"
9+
default: stable
10+
components:
11+
required: false
12+
description: "Components array"
13+
default: ''
14+
15+
runs:
16+
using: "composite"
17+
steps:
18+
- uses: actions-rs/toolchain@v1
19+
with:
20+
profile: minimal
21+
toolchain: ${{ inputs.rust }}
22+
override: true # use selected toolchain for remainder of this step
23+
components: ${{ inputs.components }}
24+
25+
# For notes about the cache, see 'Full CI' workflow
26+
- uses: Swatinem/rust-cache@v1

0 commit comments

Comments
 (0)