Skip to content
/ locks Public

Backing storage for Concourse CI pool resource

Notifications You must be signed in to change notification settings

alvarovn/locks

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

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors