diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000000000000000000000000000000000..a7affd6d522c56778d3b939321063b263fc2e8fd --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +.gitlab-ci.yml export-ignore +.gitattributes export-ignore diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ca7f069edcb40d765dafc8a2cb770449b77bf764..83f5c4d3b761d37728f8fb70a74fb71b86031280 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,6 +2,7 @@ stages: - quality - tests - install + - upload @@ -44,3 +45,32 @@ make-install: +upload-tagged: + stage: install + only: + - /^v[0-9a-z\.]+@[0-9a-z]+/[0-9a-z]+$/ + script: + - export DEBIAN_FRONTEND=noninteractive + - apt-get update + - apt-get dist-upgrade -y + - apt-get install -y git xz curl lftp gnupg + - cd "$CI_PROJECT_DIR" + - make install + # Import signing key + - echo "$GPG_SIGNKEY" | gpg --import + # Work out naming + - ARCHIVE_NAME=${CI_PROJECT_NAME}-${CI_BUILD_TAG##v} + # Create tar archive + - git archive --format=tar --prefix=${ARCHIVE_NAME}/ ${CI_BUILD_TAG} > ../${ARCHIVE_NAME}.tar + # Create compressed versions + - xz --keep --extreme -9 ../*.tar + # Sign compressed tar files + - gpg --sign --detach-sign --armor ../*.tar.xz + # Upload files, translating .asc into .sign + - lftp -e "set ssl:ca-file '/etc/ssl/certs/ca-certificates.crt'; set net:max-retries '5'; set net:timeout '60'; mkdir '${CI_BUILD_TAG}'; cd '${CI_BUILD_TAG}'; put ../'${ARCHIVE_NAME}.tar.xz' -o '${ARCHIVE_NAME}.tar.xz'; put ../'${ARCHIVE_NAME}.tar.xz.asc' -o '${ARCHIVE_NAME}.tar.xz.sign'; quit" -u "$UPLOAD_CRED" "$UPLOAD_HOST" 2>&1 + # Test uploaded files + - curl --fail -o /dev/null "$DOWNLOAD_URL/${CI_BUILD_TAG}/${ARCHIVE_NAME}.tar.xz" + - curl --fail -o /dev/null "$DOWNLOAD_URL/${CI_BUILD_TAG}/${ARCHIVE_NAME}.tar.xz.sign" + + + diff --git a/TODO b/TODO deleted file mode 100644 index 70f96d554f37cf41eb4092ae8657fb5886208e0e..0000000000000000000000000000000000000000 --- a/TODO +++ /dev/null @@ -1 +0,0 @@ -* This now needs proper perl POD documentation