Skip to content

Software templates

The Software template file software.yml can be included via:

include:
  - project: computing/gitlab-ci-templates
    file: software.yml

This file provides the following job templates:

.software:upload-source

Description

This template uploads a source distribution (tarball) to the IGWN Source Archive (https://software.igwn.org).

With default options, this job approximately runs the following:

igwn-source-upload "${IGWN_ARCHIVE_TARGET}"

The job can be configured using the following variables:

Name Default Purpose
IGWN_ARCHIVE_HOST "software.igwn.org" The host to upload to.
IGWN_ARCHIVE_USER "${GITLAB_USER_LOGIN}" The user to connect as over SSH. This must be the username associated with the SSH private key.
IGWN_ARCHIVE_RSYNC_MODULE "lscsrc" The remote Rsync module to upload to.
IGWN_ARCHIVE_TARGET "*.tar.*" The path of the file to upload.
IGWN_SOURCE_UPLOAD_OPTIONS "--verbose --verbose" Options to pass to igwn-source-upload.

Additionally this job should be configured using the following protected, masked variables:

Name Purpose
IGWN_ARCHIVE_RSYNC_PASSWORD The password to use when communicating over rsync, see https://secrets.ligo.org/secrets/433/
IGWN_ARCHIVE_SSH_PRIVATE_KEY The SSH private key (file or base64 encoded string) to use when connecting to the archive, see here

Protected variables only work with protected branches or tags.

Protected variables only work on protected branches or tags, so you must ensure that if you configure the CI/CD variables as 'Protected', you also configure the branch or tag you will push to to be protected. For more details, see https://git.ligo.org/help/ci/variables/index.html#protect-a-cicd-variable.

Example usage

test:
  extends: .software:upload-source
  needs: [tarball]