# Concourse integration Cepler can be integrated into concourse pipelines via the custom resource distributed via the `cepler/cepler-concourse-resource` docker container. It is important that you name 2 seperate resources of the `get` and `put` operations respectivly. Due to the way concourse caches and reuses resources things do not work correctly when these aren't seperated. ``` resource_types: - name: cepler type: registry-image source: repository: cepler/cepler-concourse-resource tag: latest - name: cepler-out type: registry-image source: repository: cepler/cepler-concourse-resource tag: latest ``` a simple usage example within a pipeline to deploy a `staging` environment could look like this: ``` - name: deploy-testflight serial: true plan: - in_parallel: - { get: pipeline-tasks } - { get: cepler-staging, trigger: true } - task: deploy-staging config: platform: linux image_resource: (( grab meta.task_image_config )) inputs: - name: pipeline-tasks - name: cepler-staging path: repo run: path: pipeline-tasks/ci/tasks/deploy-staging.sh - put: cepler-staging-out params: repository: cepler-staging # environment: staging ## optional environment override resources: - name: cepler-staging type: cepler source: uri: (( grab meta.git_uri )) branch: (( grab meta.git_branch )) private_key: (( grab meta.github_private_key )) environment: staging config: cepler.yml - name: cepler-staging-out type: cepler-out source: uri: (( grab meta.git_uri )) branch: (( grab meta.git_branch )) private_key: (( grab meta.github_private_key )) environment: staging config: cepler.yml ``` When you get a cepler resource you are provided with the specified repository checkout out to the specified branch with the command `cepler prepare -e --force-clean` run against it. Ie only the files you have explicitly specified as belonging to this environment in the `cepler.yml` config file will be present. All other ones will be deleted. The `put` operation will commit the state via the command `cepler record -e --reset-head` and push the changes to the remote repository (after attempting to rebase against the upstream head). ## Pipeline generation Please checkout the (cepler-templates)[https://github.com/bodymindarts/cepler-templates] project to find out more about generating best-practices pipelines.