sorry for the weird title, not sure how to put that properly.
Here’s my problem:
I am building a release tool that allows people to approve a release. In an ideal world, the workflow is this
- Concourse CI runs for the master branch
- Job “request release approval” gets called, does a “put” to custom resource(“version”)
- People approve and release the version on the external tool
- the pipeline continues with the deployment, depending on the previous “version” that was put.
Naturally, there is a manual step at 3. I have implemented the
in script for my resource to only query for approved releases (
?released=true). This breaks when the “put” does an implicit get, because the version is not released yet (query returns no results). I have tried using get_params to also query pending releases. This results in the pipeline continueing, but immediately after the “put”. I want to wait until the version has been released.
My next idea is to split the pipeline up and remove the
passed option from the pipeline, but that makes it visually harder to understand.
Is there anything else I could try?
resource_types: - name: release-tool type: docker-image source: repository: ... - name: meta type: docker-image source: repository: swce/metadata-resource resources: - name: metadata type: meta - name: version type: release-tool source: api_key: ... team_url: ... jobs: - name: request new release plan: - get: metadata - task: construct release payload ... - put: version params: payload_path: release-request/payload get_params: fetch_pending: true - name: show release plan: - get: version trigger: true passed: [request new release] - task: construct release payload ...