You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
IMPACT: Without this, Test Suite has some (low-ish) chance of publishing Docker images which are broken. These Docker images are ideally used by Booking System implementations' CI pipelines to test their implementations, which means that this could break several CI pipelines simultaneously.
Currently, here's how things work:
For each new PR that has master as its base branch, the .github/workflows/reference-implementation.yml workflow runs, which runs Test Suite against the Reference Implementation with a matrix of different configuration (e.g. auth, no auth, single seller, multiple sellers, etc). This is an extremely thorough test
When the PR is merged into master, the .github/workflows/docker.yml workflow runs, which, after just a very basic set of code testing, pushes the code to a new Docker image. Test Suite is not run here with its matrix of different configurations
This GitHub project is set up with branch protection rules to ensure that a PR can only be merged into master if it passes CI AND is already up-to-date with master (and is approved)
Because of point 3, it can be assumed that point 2 already takes on the thoroughly-tested attributes of point 1, as any changes to master must come in through a PR which must have passed testing.
However, it is possible (and may at some unfortunate time be necessary) to bypass branch rules.
And so, it would still be useful to add all that testing into the docker workflow.
The only downside is that it would add to the GitHub test runner load that unfortunately slows down throughput of OpenActive PRs, but I expect this is a reasonable compromise
Solution Design Notes
It might be possible to do this by chaining workflows so that the reference-implementation.yml workflow runs first and then tasks the docker.yml workflow to start if it is successful (the author of this comment is not too familiar with this process but it seems like it should work). This would require:
Updating reference-implementation.yml to also run on pushes to master.
Having an action that runs after everything else, AND ONLY WHEN ON THE master BRANCH i.e. if: ${{ github.ref == 'refs/heads/master' }} and invokes a repository dispatch
Having the docker.yml be triggered only by the above repository dispatch
Some solution design thoughts from the comment that spawned this issue:
Spawned from this comment: #597 (comment)
IMPACT: Without this, Test Suite has some (low-ish) chance of publishing Docker images which are broken. These Docker images are ideally used by Booking System implementations' CI pipelines to test their implementations, which means that this could break several CI pipelines simultaneously.
Currently, here's how things work:
master
as its base branch, the.github/workflows/reference-implementation.yml
workflow runs, which runs Test Suite against the Reference Implementation with a matrix of different configuration (e.g. auth, no auth, single seller, multiple sellers, etc). This is an extremely thorough testmaster
, the.github/workflows/docker.yml
workflow runs, which, after just a very basic set of code testing, pushes the code to a new Docker image. Test Suite is not run here with its matrix of different configurationsmaster
(and is approved)Because of point 3, it can be assumed that point 2 already takes on the thoroughly-tested attributes of point 1, as any changes to master must come in through a PR which must have passed testing.
However, it is possible (and may at some unfortunate time be necessary) to bypass branch rules.
And so, it would still be useful to add all that testing into the docker workflow.
The only downside is that it would add to the GitHub test runner load that unfortunately slows down throughput of OpenActive PRs, but I expect this is a reasonable compromise
Solution Design Notes
It might be possible to do this by chaining workflows so that the reference-implementation.yml workflow runs first and then tasks the docker.yml workflow to start if it is successful (the author of this comment is not too familiar with this process but it seems like it should work). This would require:
master
.master
BRANCH i.e.if: ${{ github.ref == 'refs/heads/master' }}
and invokes a repository dispatchSome solution design thoughts from the comment that spawned this issue:
The text was updated successfully, but these errors were encountered: