feat(experimental): Build multiple recipes in parallel (#182)
The `build` subcommand can now take in any number of recipe files and will build them all in parallel. Along with this new ability, I've added a way to easily distinguish which part of the build log belongs to which recipe. Check out the `docker_build` action of this PR for an example.  ## Tasks - [x] Make build log follow same pattern as normal logs to keep things consistent - [x] Update color ranges based on @xynydev 's feedback - [x] Deal with ANSI control characters in log output - [x] Add [`indicatif`](https://crates.io/crates/indicatif) to make logs look nicer - [x] Add ability to print logs to a file
This commit is contained in:
parent
18e48a34a4
commit
4ca98c1c2a
24 changed files with 1449 additions and 500 deletions
18
.github/workflows/build-pr.yml
vendored
18
.github/workflows/build-pr.yml
vendored
|
|
@ -9,6 +9,8 @@ on:
|
|||
|
||||
env:
|
||||
FORCE_COLOR: 1
|
||||
CLICOLOR_FORCE: 1
|
||||
RUST_LOG_STYLE: always
|
||||
|
||||
jobs:
|
||||
arm64-prebuild:
|
||||
|
|
@ -203,7 +205,7 @@ jobs:
|
|||
|
||||
- name: Install bluebuild
|
||||
run: |
|
||||
cargo install --path . --debug
|
||||
cargo install --path . --debug --all-features
|
||||
|
||||
- name: Expose GitHub Runtime
|
||||
uses: crazy-max/ghaction-github-runtime@v3
|
||||
|
|
@ -218,7 +220,7 @@ jobs:
|
|||
cd integration-tests/test-repo
|
||||
bluebuild template -vv | tee Containerfile
|
||||
grep -q 'ARG IMAGE_REGISTRY=ghcr.io/blue-build' Containerfile || exit 1
|
||||
bluebuild build --push -vv
|
||||
bluebuild build --push -vv recipes/recipe.yml recipes/recipe-39.yml
|
||||
|
||||
docker-build-external-login:
|
||||
timeout-minutes: 60
|
||||
|
|
@ -259,7 +261,7 @@ jobs:
|
|||
|
||||
- name: Install bluebuild
|
||||
run: |
|
||||
cargo install --path . --debug
|
||||
cargo install --path . --debug --all-features
|
||||
|
||||
- name: Expose GitHub Runtime
|
||||
uses: crazy-max/ghaction-github-runtime@v3
|
||||
|
|
@ -273,7 +275,7 @@ jobs:
|
|||
cd integration-tests/test-repo
|
||||
bluebuild template -vv | tee Containerfile
|
||||
grep -q 'ARG IMAGE_REGISTRY=ghcr.io/blue-build' Containerfile || exit 1
|
||||
bluebuild build --push -vv
|
||||
bluebuild build --push -vv recipes/recipe.yml recipes/recipe-39.yml
|
||||
|
||||
podman-build:
|
||||
timeout-minutes: 60
|
||||
|
|
@ -314,7 +316,7 @@ jobs:
|
|||
|
||||
- name: Install bluebuild
|
||||
run: |
|
||||
cargo install --path . --debug
|
||||
cargo install --path . --debug --all-features
|
||||
|
||||
- name: Run Build
|
||||
env:
|
||||
|
|
@ -325,7 +327,7 @@ jobs:
|
|||
cd integration-tests/test-repo
|
||||
bluebuild template -vv | tee Containerfile
|
||||
grep -q 'ARG IMAGE_REGISTRY=ghcr.io/blue-build' Containerfile || exit 1
|
||||
bluebuild build -B podman --push -vv
|
||||
bluebuild build -B podman --push -vv recipes/recipe.yml recipes/recipe-39.yml
|
||||
|
||||
buildah-build:
|
||||
timeout-minutes: 60
|
||||
|
|
@ -366,7 +368,7 @@ jobs:
|
|||
|
||||
- name: Install bluebuild
|
||||
run: |
|
||||
cargo install --path . --debug
|
||||
cargo install --path . --debug --all-features
|
||||
|
||||
- name: Run Build
|
||||
env:
|
||||
|
|
@ -377,4 +379,4 @@ jobs:
|
|||
cd integration-tests/test-repo
|
||||
bluebuild template -vv | tee Containerfile
|
||||
grep -q 'ARG IMAGE_REGISTRY=ghcr.io/blue-build' Containerfile || exit 1
|
||||
bluebuild build -B buildah --push -vv
|
||||
bluebuild build -B buildah --push -vv recipes/recipe.yml recipes/recipe-39.yml
|
||||
|
|
|
|||
18
.github/workflows/build.yml
vendored
18
.github/workflows/build.yml
vendored
|
|
@ -12,6 +12,8 @@ on:
|
|||
|
||||
env:
|
||||
FORCE_COLOR: 1
|
||||
CLICOLOR_FORCE: 1
|
||||
RUST_LOG_STYLE: always
|
||||
|
||||
jobs:
|
||||
arm64-prebuild:
|
||||
|
|
@ -201,7 +203,7 @@ jobs:
|
|||
|
||||
- name: Install bluebuild
|
||||
run: |
|
||||
cargo install --path . --debug
|
||||
cargo install --path . --debug --all-features
|
||||
|
||||
- name: Expose GitHub Runtime
|
||||
uses: crazy-max/ghaction-github-runtime@v3
|
||||
|
|
@ -216,7 +218,7 @@ jobs:
|
|||
cd integration-tests/test-repo
|
||||
bluebuild template -vv | tee Containerfile
|
||||
grep -q 'ARG IMAGE_REGISTRY=ghcr.io/blue-build' Containerfile || exit 1
|
||||
bluebuild build --push -vv
|
||||
bluebuild build --push -vv recipes/recipe.yml recipes/recipe-39.yml
|
||||
|
||||
docker-build-external-login:
|
||||
timeout-minutes: 60
|
||||
|
|
@ -257,7 +259,7 @@ jobs:
|
|||
|
||||
- name: Install bluebuild
|
||||
run: |
|
||||
cargo install --path . --debug
|
||||
cargo install --path . --debug --all-features
|
||||
|
||||
- name: Expose GitHub Runtime
|
||||
uses: crazy-max/ghaction-github-runtime@v3
|
||||
|
|
@ -271,7 +273,7 @@ jobs:
|
|||
cd integration-tests/test-repo
|
||||
bluebuild template -vv | tee Containerfile
|
||||
grep -q 'ARG IMAGE_REGISTRY=ghcr.io/blue-build' Containerfile || exit 1
|
||||
bluebuild build --push -vv
|
||||
bluebuild build --push -vv recipes/recipe.yml recipes/recipe-39.yml
|
||||
|
||||
podman-build:
|
||||
timeout-minutes: 60
|
||||
|
|
@ -312,7 +314,7 @@ jobs:
|
|||
|
||||
- name: Install bluebuild
|
||||
run: |
|
||||
cargo install --path . --debug
|
||||
cargo install --path . --debug --all-features
|
||||
|
||||
- name: Run Build
|
||||
env:
|
||||
|
|
@ -323,7 +325,7 @@ jobs:
|
|||
cd integration-tests/test-repo
|
||||
bluebuild template -vv | tee Containerfile
|
||||
grep -q 'ARG IMAGE_REGISTRY=ghcr.io/blue-build' Containerfile || exit 1
|
||||
bluebuild build -B podman --push -vv
|
||||
bluebuild build -B podman --push -vv recipes/recipe.yml recipes/recipe-39.yml
|
||||
|
||||
buildah-build:
|
||||
timeout-minutes: 60
|
||||
|
|
@ -364,7 +366,7 @@ jobs:
|
|||
|
||||
- name: Install bluebuild
|
||||
run: |
|
||||
cargo install --path . --debug
|
||||
cargo install --path . --debug --all-features
|
||||
|
||||
- name: Run Build
|
||||
env:
|
||||
|
|
@ -375,4 +377,4 @@ jobs:
|
|||
cd integration-tests/test-repo
|
||||
bluebuild template -vv | tee Containerfile
|
||||
grep -q 'ARG IMAGE_REGISTRY=ghcr.io/blue-build' Containerfile || exit 1
|
||||
bluebuild build -B buildah --push -vv
|
||||
bluebuild build -B buildah --push -vv recipes/recipe.yml recipes/recipe-39.yml
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue