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

[TASK] Restructure github workflows #126

Merged
merged 1 commit into from
Nov 23, 2021
Merged

[TASK] Restructure github workflows #126

merged 1 commit into from
Nov 23, 2021

Conversation

sbuerk
Copy link
Contributor

@sbuerk sbuerk commented Nov 23, 2021

This pull-request restructues the github workflow, having one testset
per core version, exploded by matrix mutations (per core version).

We will also make sure all steps are executed, even if one step fails,
except it fails early (composer req/install), so we can get all failures
in one go, instead of fixing the first one, push, get next error etc.

Currently only one testset is included for core v10, which will get a
second testset later on for core v11 and php matrix for v11.

All steps are executed on push or pull_request. But no rules without
exceptions, and so we have some special conditions:

  • phpstan (only for composerInstallMax steps/mutations)
  • functional sqlite (only for nightly or pull_request, not for push)
  • functional postgres (only for nightly or pull_request, not for push)

Big wins from this refactoring:

  • minimize count of parallel jobs which needs to be executed
  • only install composer packages once per core, php-version and min/max mutation

With that, we can ommit to cache composer artifacts, as we do not have
another job needing that combination for the same workflow run, which
eventually could solve #71 .

This commit restructues the github workflow, having one testset per
coreversion, exploded by matrix mutations (per core version).

We will also make sure all steps are executed, even if one step fails,
except it fails early (composer req/install), so we can get all failures
in one go, instead of fixing the first one, push, get next error etc.

Currently only one testset is included for core v10, which will get a
second testset later on for core v11 and php matrix for v11.

All steps are executed on push or pull_request. But no rules without
exceptions, and so we have some special conditions:

- phpstan (only for composerInstallMax steps/mutations)
- functional sqlite (only for nightly or pull_request, not for push)
- functional postgres (only for nightly or pull_request, not for push)

Big wins from this refactoring:

- minimize count of parallel jobs which needs to be executed
- only install composer packages once per core, php-version and min/max mutation

With that, we can ommit to cache composer artifacts, as we do not have
another job needing that combination for the same workflow run, which
eventually could solve #71 .
@sbuerk
Copy link
Contributor Author

sbuerk commented Nov 23, 2021

See https://github.com/sbuerk/brofix/actions/runs/1496062299 for
pipeline on push / push on branch for for in contrast to pull_request
runs (which includes postgres and sqlite in addition)

@sbuerk sbuerk mentioned this pull request Nov 23, 2021
@sypets
Copy link
Owner

sypets commented Nov 23, 2021

Structure makes sense. Nice work. I love it.

@sypets sypets merged commit a1a668c into sypets:master Nov 23, 2021
@sbuerk sbuerk deleted the test-2 branch December 12, 2021 16:30
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.

2 participants