A Concourse CI resource to track packages from the devpi server.
uri: Required. The base URI of the devpi server.index: Required. The package index in the formuser/name.package: Required. The pacakge to track.username: Optional. The username for logging in (Required forout)password: Optional. The password for logging in (Required forout)versioning: Optional. The versioning scheme. Can be one of 'loose' (the default) or 'semantic'.
Resource configuration:
resources:
- name: my-package
type: devpi
source:
uri: http://pypi.host.tld:9090
index: foo/dev
package: my-package-name
username: user
password: passwd
versioning: semanticFetching a package:
- get: my-packagePushing 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 setup.py bdis_wheel. So a minimal job for uploading a package to your
devpi-server would look like
- name: package
plan:
- get: repo
trigger: true
- get: builder-image
- task: build-package
file: repo/ci/tasks/build-package.yml
image: builder-imagewhereas the build-package.yml could look like
platform: linux
inputs:
- {name: repo}
outputs:
- {name: wheel}
run:
path: ci/scripts/build-package.sh
dir: repo
args: [../wheel]and your build-package.sh like this
#!/bin/sh
python setup.py bdist_wheel -d ${1}The devpi server will be queried for new versions of the specified package.
Downloads the package to the destination
version: Optional. Pull this specific version of the package instead of the newest.
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.