Skip to content
A devpi resource for Concourse CI
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Devpi Resource

A Concourse CI resource to track packages from the devpi server.

Source Configuration

  • uri: Required. The base URI of the devpi server.
  • index: Required. The package index in the form user/name.
  • package: Required. The pacakge to track.
  • username: Optional. The username for logging in (Required for out)
  • password: Optional. The password for logging in (Required for out)
  • versioning: Optional. The versioning scheme. Can be one of 'loose' (the default) or 'semantic'.


Resource configuration:

- name: my-package
  type: devpi
    index: foo/dev
    package: my-package-name
    username: user
    password: passwd
    versioning: semantic

Fetching a package:

- get: my-package

Pushing a local pacakge to the server:

- put: my-package
  params: {fileglob: "*.whl"}

The package to upload would usually be produced in a previous task of the job, e.g. by running python bdis_wheel. So a minimal job for uploading a package to your devpi-server would look like

- name: package
  - get: repo
    trigger: true
  - get: builder-image
  - task: build-package
    file: repo/ci/tasks/build-package.yml
    image: builder-image

whereas the build-package.yml could look like

platform: linux
- {name: repo}
- {name: wheel}
  path: ci/scripts/
  dir: repo
  args: [../wheel]

and your like this


python bdist_wheel -d ${1}


check: Check for new versions

The devpi server will be queried for new versions of the specified package.

in: Pull a package from the devpi server

Downloads the package to the destination


  • version: Optional. Pull this specific version of the package instead of the newest.

out: Push a package to the devpi server


  • file: Specifiy a concrete package filename to push to the server.
  • fileglob: Specifiy a glob-pattern for matching files in the destination directory to be pushed to the server. The matched files are sorted alphanumerically and the "newest" is selected.
You can’t perform that action at this time.