This repo builds a docker image which is designed to be used in CI to keep the configuration in sync with the halfpipe manifest.
There are scripts for Concourse (update-pipeline
) and GitHub Actions (update-actions-workflow
).
See https://ee.public.springernature.app/rel-eng/halfpipe/features/ for more info on using it.
-
Update fly.
-
Update halfpipe.
-
Login to concourse.
-
Check team in halfpipe file matches current team
-
Check if pipeline already exists. Obviously it should as it is running inside the pipeline - something is wrong otherwise, so exit (error).
-
Run
halfpipe
to generate Concourse pipeline -
Check if pipeline has changed. Exit (success) if there are no changes.
If the pipeline has changed:
-
Check if any new jobs have been added. If so, disable all existing versions. This prevents the new jobs triggering immediately with the previous version.
-
Update the pipeline.
-
Update halfpipe
-
Run
halfpipe
to generate workflow -
Set GitHub Actions output variable
synced=true|false
. Halfpipe then uses this variable to either commit the changes or continue running the workflow.