diff --git a/ci/Dockerfile b/ci/Dockerfile new file mode 100644 index 00000000..fd57b3d8 --- /dev/null +++ b/ci/Dockerfile @@ -0,0 +1,11 @@ +FROM fedora:28 + +RUN useradd -M -l -u 3000018 jenkins +RUN dnf install -y \ + gcc \ + libjpeg-devel \ + openssh-clients \ + python3-devel \ + 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..cb51e03d --- /dev/null +++ b/ci/build.sh @@ -0,0 +1,8 @@ +rm -rf .venv +python3.6 -m venv .venv + +rm -rf dist +.venv/bin/pip install --upgrade pip setuptools wheel +.venv/bin/pip wheel -w dist -r requirements.txt + +sed -i '/^-i/d' requirements.txt diff --git a/ci/publish.sh b/ci/publish.sh new file mode 100644 index 00000000..d246da10 --- /dev/null +++ b/ci/publish.sh @@ -0,0 +1,9 @@ +: ${PUBLISH_PATH:=/var/lib/wheels/taiga} + +rsync -rtiO \ + --delete \ + --include '*.whl' \ + --include requirements.txt \ + dist/ \ + requirements.txt \ + ${PUBLISH_HOST}:${PUBLISH_PATH%/}/