From fece6eebc13259f18633ef8bd465bdd6d01020c4 Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Sat, 16 Feb 2019 10:55:50 -0600 Subject: [PATCH] draft: ci: Build wheels and publish to wheelhost --- ci/Dockerfile | 11 +++++++++++ ci/Jenkinsfile | 34 ++++++++++++++++++++++++++++++++++ ci/build.sh | 5 +++++ ci/publish.sh | 8 ++++++++ 4 files changed, 58 insertions(+) create mode 100644 ci/Dockerfile create mode 100644 ci/Jenkinsfile create mode 100644 ci/build.sh create mode 100644 ci/publish.sh diff --git a/ci/Dockerfile b/ci/Dockerfile new file mode 100644 index 00000000..11db0a96 --- /dev/null +++ b/ci/Dockerfile @@ -0,0 +1,11 @@ +FROM fedora + +RUN useradd -M -l -u 3000018 jenkins +RUN dnf install -y \ + libjpeg-devel \ + openssh-clients \ + python3-devel \ + redhat-rpm-config \ + rsync \ + zlib-devel \ + -- diff --git a/ci/Jenkinsfile b/ci/Jenkinsfile new file mode 100644 index 00000000..9370421e --- /dev/null +++ b/ci/Jenkinsfile @@ -0,0 +1,34 @@ +pipeline { + agent { + dockerfile { + dir 'ci' + args '-v /etc/ssh/ssh_known_hosts:/etc/ssh/ssh_known_hosts:ro' + } + } + + triggers { + pollSCM '' + } + + environment { + PUBLISH_HOST = 'file0.pyrocufflink.blue' + XDG_CACHE_HOME = "${WORKSPACE}" + } + + stages { + stage('Build') { + steps { + sh '. ci/build.sh' + } + } + + stage('Publish') { + steps { + sshagent(['jenkins-sftp']) { + sh '. ci/publish.sh' + } + } + } + } + +} diff --git a/ci/build.sh b/ci/build.sh new file mode 100644 index 00000000..b4a8d070 --- /dev/null +++ b/ci/build.sh @@ -0,0 +1,5 @@ +rm -rf .venv +python3 -m venv .venv + +.venv/bin/pip install --upgrade pip setuptools wheel +.venv/bin/pip wheel -w dist -r requirements.txt diff --git a/ci/publish.sh b/ci/publish.sh new file mode 100644 index 00000000..ffc5b09e --- /dev/null +++ b/ci/publish.sh @@ -0,0 +1,8 @@ +: ${PUBLISH_PATH:=/var/lib/wheels/taiga} + +rsync -rtiO \ + --delete \ + --include '*.whl' \ + dist/ ${PUBLISH_HOST}:${PUBLISH_PATH%/}/ +rsync -ti \ + requirements.txt ${PUBLISH_HOST}:${PUBLISH_PATH%/}/