Compare commits

...

3 Commits
master ... ci

Author SHA1 Message Date
Dustin 40f19989fe ci: Build a wheel for taiga-back too
Now that the project has a `setup.py` script, we can build and publish a
wheel for it, making deployment a lot simpler.
2019-03-05 23:14:36 -06:00
Dustin 1dde74203b Add setup.py
This will allow building of a wheel for *taiga-back*
2019-03-05 23:14:36 -06:00
Dustin 58d9351bf5 ci: Build wheels and publish to wheelhost
This commit introduces a Jenkins pipeline definition and accompanying
shell scripts to build Wheel packages for *taiga-back*. These packages
are then uploaded to the "wheelhost" (i.e *file0.pyrocufflink.blue*,
presently), where they can then be used by `pip` to install Taiga on the
production machine. This makes it possible to install Taiga without
needing build-time dependencies on the final host.
2019-02-16 22:31:48 -06:00
5 changed files with 78 additions and 0 deletions

12
ci/Dockerfile Normal file
View File

@ -0,0 +1,12 @@
FROM fedora:28
RUN useradd -M -l -u 3000018 jenkins
RUN dnf install -y \
gcc \
git \
libjpeg-devel \
openssh-clients \
python3-devel \
rsync \
zlib-devel \
--

34
ci/Jenkinsfile vendored Normal file
View File

@ -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'
}
}
}
}
}

8
ci/build.sh Normal file
View File

@ -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

9
ci/publish.sh Normal file
View File

@ -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%/}/

15
setup.py Normal file
View File

@ -0,0 +1,15 @@
from setuptools import find_packages, setup
setup(
name='taiga-back',
use_scm_version=True,
description='taiga-back',
url='https://taiga.io/',
license='GPL-3',
packages=find_packages(
exclude=['tests', 'tests.*'],
),
setup_requires=[
'setuptools_scm',
],
)