Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,301 Commits
 
 
 
 
 
 

Repository files navigation

locks

Backing storage for Concourse CI pool resource

Directory structure

.
├── latest                  # resource pool
    ├── claimed             # directory containing claimed locks
    │   └── .gitkeep
    └── unclaimed           # directory containing unclaimed locks
        ├── .gitkeep
        └── web-integration # lock file (empty)       

Adding a resource

resource_name=my-new-resource
mkdir -p $resource_name/{claimed,unclaimed}
touch $resource_name/{claimed,unclaimed}/.gitkeep

Adding a named lock

lock_name=my-named-lock
touch $resource_name/unclaimed/$lock_name

Usage

Define resource in pipeline

resources:
- name: ((concourse-resource-name))
  type: pool
  source:
    uri: git@github.com:nbycomp/locks.git
    branch: master
    pool: ((resource-pool))
    private_key: ((private_key))

Use acquire/claim to obtain a resource:

jobs:
- name: my-job
  plan:
  - put: ((concourse-resource-name))
    params: {claim: ((lock-name))} # or acquire: true to obtain a random lock

Use ensure to release the resource even if the task failed/crashed:

jobs:
- name: integration-tests
  plan:
  - task: integration
    file: path/to/integration.yml    
    ensure:
      put: latest
      params: {release: latest}

Manually releasing locks

If it is neccesary to manually release a lock, this can be done by moving the file from claimed to unclaimed, e.g.:

git mv latest/claimed/web-integration latest/unclaimed
git commit -m "Manually release lock"
git push

About

Backing storage for Concourse CI pool resource

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors