Use pipenv and pyenv for CI/CD pipeline.
This commit is contained in:
@@ -8,6 +8,8 @@ stages:
|
||||
|
||||
variables:
|
||||
GIT_SUBMODULE_STRATEGY: recursive
|
||||
LC_ALL: "C.UTF-8"
|
||||
LANG: "C.UTF-8"
|
||||
|
||||
image: registry.gitlab.com/sumner/sublime-music/python-build:latest
|
||||
|
||||
@@ -15,20 +17,18 @@ lint:
|
||||
stage: test
|
||||
allow_failure: true
|
||||
before_script:
|
||||
- pip3 install -r dev-requirements.txt
|
||||
- pip3 install -e .
|
||||
- ./cicd/install-project-deps.sh
|
||||
script:
|
||||
- python3 setup.py check -mrs
|
||||
- flake8
|
||||
- mypy sublime
|
||||
- pipenv run python setup.py check -mrs
|
||||
- pipenv run flake8
|
||||
- pipenv run mypy sublime
|
||||
|
||||
test:
|
||||
stage: test
|
||||
before_script:
|
||||
- pip3 install -r dev-requirements.txt
|
||||
- pip3 install -e .
|
||||
- ./cicd/install-project-deps.sh
|
||||
script:
|
||||
- ./cicd/pytest.sh
|
||||
- pipenv run ./cicd/pytest.sh
|
||||
artifacts:
|
||||
paths:
|
||||
- htmlcov
|
||||
@@ -36,9 +36,9 @@ test:
|
||||
build:
|
||||
stage: build
|
||||
before_script:
|
||||
- pip3 install -r dev-requirements.txt
|
||||
- ./cicd/install-project-deps.sh
|
||||
script:
|
||||
- python3 setup.py sdist
|
||||
- pipenv run python setup.py sdist
|
||||
artifacts:
|
||||
paths:
|
||||
- dist/*
|
||||
|
2
Pipfile
2
Pipfile
@@ -11,6 +11,8 @@ pytest = "*"
|
||||
pytest-cov = "*"
|
||||
docutils = "*"
|
||||
lxml = "*"
|
||||
jedi = "*"
|
||||
rope = "*"
|
||||
|
||||
[packages]
|
||||
sublime-music = {editable = true,path = "."}
|
||||
|
26
Pipfile.lock
generated
26
Pipfile.lock
generated
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "7f4f4f5e7a33a2def5c2670995d552cf9f0e0e5b969350d286fd082c314ec4cd"
|
||||
"sha256": "da004735aabedf3def0f7102ddce29046ab09e59d96277401d54098069a5c092"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {
|
||||
@@ -276,6 +276,14 @@
|
||||
"index": "pypi",
|
||||
"version": "==3.7.9"
|
||||
},
|
||||
"jedi": {
|
||||
"hashes": [
|
||||
"sha256:786b6c3d80e2f06fd77162a07fed81b8baa22dde5d62896a790a331d6ac21a27",
|
||||
"sha256:ba859c74fa3c966a22f2aeebe1b74ee27e2a462f56d3f5f7ca4a59af61bfe42e"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==0.15.1"
|
||||
},
|
||||
"lxml": {
|
||||
"hashes": [
|
||||
"sha256:02ca7bf899da57084041bb0f6095333e4d239948ad3169443f454add9f4e9cb4",
|
||||
@@ -356,6 +364,13 @@
|
||||
],
|
||||
"version": "==19.2"
|
||||
},
|
||||
"parso": {
|
||||
"hashes": [
|
||||
"sha256:63854233e1fadb5da97f2744b6b24346d2750b85965e7e399bec1620232797dc",
|
||||
"sha256:666b0ee4a7a1220f65d367617f2cd3ffddff3e205f3f16a0284df30e774c2a9c"
|
||||
],
|
||||
"version": "==0.5.1"
|
||||
},
|
||||
"pluggy": {
|
||||
"hashes": [
|
||||
"sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0",
|
||||
@@ -407,6 +422,15 @@
|
||||
"index": "pypi",
|
||||
"version": "==2.8.1"
|
||||
},
|
||||
"rope": {
|
||||
"hashes": [
|
||||
"sha256:6b728fdc3e98a83446c27a91fc5d56808a004f8beab7a31ab1d7224cecc7d969",
|
||||
"sha256:c5c5a6a87f7b1a2095fb311135e2a3d1f194f5ecb96900fdd0a9100881f48aaf",
|
||||
"sha256:f0dcf719b63200d492b85535ebe5ea9b29e0d0b8aebeb87fe03fc1a65924fdaf"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==0.14.0"
|
||||
},
|
||||
"six": {
|
||||
"hashes": [
|
||||
"sha256:1f1b7d42e254082a9db6279deae68afb421ceba6158efa6131de7b3003ee93fd",
|
||||
|
6
cicd/install-project-deps.sh
Executable file
6
cicd/install-project-deps.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#! /bin/sh
|
||||
export PYENV_ROOT="${HOME}/.pyenv"
|
||||
export PATH="${PYENV_ROOT}/bin:$PATH"
|
||||
eval "$(pyenv init -)"
|
||||
|
||||
pipenv install --dev
|
@@ -3,4 +3,19 @@ FROM ubuntu:18.04
|
||||
MAINTAINER sumner "https://gitlab.com/sumner"
|
||||
|
||||
RUN apt update && \
|
||||
apt install -y python3-pip libcairo2-dev pkg-config libgtk-3-dev libmpv-dev libglib2.0-dev gir1.2-notify-0.7
|
||||
export TZ=America/Denver DEBIAN_FRONTEND=noninteractive && \
|
||||
apt install -y \
|
||||
python3-pip libcairo2-dev pkg-config libgtk-3-dev libmpv-dev \
|
||||
libglib2.0-dev gir1.2-notify-0.7 make build-essential libssl-dev \
|
||||
zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
|
||||
libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev \
|
||||
liblzma-dev python-openssl git libgirepository1.0-dev
|
||||
|
||||
RUN cd /usr/local/src && \
|
||||
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
|
||||
|
||||
RUN pip3 install pipenv
|
||||
|
||||
# Install the correct Python version with pyenv
|
||||
COPY install-python.sh /tmp/install-python.sh
|
||||
RUN /tmp/install-python.sh
|
||||
|
6
cicd/python-build/install-python.sh
Executable file
6
cicd/python-build/install-python.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#! /bin/sh
|
||||
export PYENV_ROOT="${HOME}/.pyenv"
|
||||
export PATH="${PYENV_ROOT}/bin:$PATH"
|
||||
eval "$(pyenv init -)"
|
||||
|
||||
pyenv install 3.8.0
|
Reference in New Issue
Block a user