I am new to Concourse. Read most of the docs, and just finished the Pluralsight course “Getting Started with Concourse”.
I started out with a simple job (mod3-pipeline-1 in that class). I don’t want to reproduce the entire thing because it is probably copyrighted but here is the essense. The pipeline is
source-code — unit-test — source-code — package-app --artifact-repository — deploy-app.
- artifact-repository resource is an S3 bucket
- Source code resource is a Git repository
- unit-test is the first job, and pulls down the source code and runs the unit tests then shows the files created.
- package-app builds the source code and tars up the built artifacts, and sends them to artifact-repository
- deploy-app gets the tar file from the S3 bucket and extracts it.
Package app starts with:
- name: package-app
- get: source-code
The first time, the pipeline worked fine. As I change things and I want to rerun the pipeline to test it out, rerunning unit-test does not trigger package-app. My gut is telling me this is because source-code didn’t change, but… the job specifies that package-app should run when unit-test succeeds, but it doesn’t.
How do I get the entire pipeline to run again from the first job even if nothing changed? there HAS to be a way to do that. Otherwise, how do you tell if a job is still valid? What if someone deletes the app from the bucket and it needs to be recreated?
Side note, the whole concept of having to start a job, as opposed to running “the pipeline” seems wrong to me. What would you do if there were multiple parallel jobs in the beginning of the pipeline? Create an artificial first job that does nothing that they are all dependent on? Semantically that’s icky.