CI builds / pipeline now run tests and build static assets

merge-requests/154/head
Eliot Berriot 2017-06-25 16:45:33 +02:00
rodzic 76f98b74dd
commit 072605dea6
10 zmienionych plików z 60 dodań i 39 usunięć

Wyświetl plik

@ -1,4 +1,42 @@
image: docker:latest
stages:
- test
- build
test_api:
stage: test
before_script:
- docker-compose -f api/test.yml build
script:
- docker-compose -f api/test.yml run test
after_script:
- docker-compose -f api/test.yml run test rm -rf funkwhale_api/media/
tags:
- dind
build_front:
stage: build
image: node:6-alpine
before_script:
- cd front
script:
- npm install
- npm run build
cache:
key: "$CI_COMMIT_REF_NAME"
paths:
- front/node_modules
artifacts:
name: "front_${CI_COMMIT_REF_NAME}"
paths:
- front/dist/
only:
- master
- develop
tags:
- docker
# When using dind, it's wise to use the overlayfs driver for
# improved performance.

Wyświetl plik

@ -32,3 +32,4 @@ CELERY_ALWAYS_EAGER = True
########## END CELERY
# Your local stuff: Below this line define 3rd party library settings
API_AUTHENTICATION_REQUIRED = False

Wyświetl plik

@ -1,10 +0,0 @@
FROM python:3.5
ENV PYTHONUNBUFFERED 1
# Requirements have to be pulled and installed here, otherwise caching won't work
COPY ./requirements.apt /requirements.apt
COPY ./install_os_dependencies.sh /install_os_dependencies.sh
RUN bash install_os_dependencies.sh install
COPY ./requirements /requirements
RUN pip install -r /requirements/base.txt

Wyświetl plik

@ -1,12 +0,0 @@
FROM python:3.5
ENV PYTHONUNBUFFERED 1
# Requirements have to be pulled and installed here, otherwise caching won't work
COPY ./requirements.apt /requirements.apt
COPY ./install_os_dependencies.sh /install_os_dependencies.sh
RUN bash install_os_dependencies.sh install
COPY ./requirements /requirements
RUN pip install -r /requirements/local.txt
WORKDIR /app

Wyświetl plik

@ -1,13 +1,19 @@
FROM funkwhale/apibase
FROM python:3.5
ENV PYTHONUNBUFFERED 1
ENV PYTHONDONTWRITEBYTECODE 1
# Requirements have to be pulled and installed here, otherwise caching won't work
COPY ./requirements.apt /requirements.apt
COPY ./install_os_dependencies.sh /install_os_dependencies.sh
RUN bash install_os_dependencies.sh install
COPY ./requirements /requirements
RUN mkdir /requirements
COPY ./requirements/base.txt /requirements
RUN pip install -r /requirements/base.txt
COPY ./requirements/local.txt /requirements
RUN pip install -r /requirements/local.txt
COPY ./requirements/test.txt /requirements
RUN pip install -r /requirements/test.txt
WORKDIR /app

Wyświetl plik

@ -50,7 +50,7 @@ class SessionRadio(SimpleRadio):
def filter_from_session(self, queryset):
already_played = self.session.session_tracks.all().values_list('track', flat=True)
queryset = queryset.exclude(pk__in=already_played)
queryset = queryset.exclude(pk__in=list(already_played))
return queryset
def pick(self, **kwargs):

Wyświetl plik

@ -74,12 +74,11 @@ class TestRadios(TestCase):
def test_can_use_radio_session_to_filter_choices(self):
tracks = mommy.make('music.Track', _quantity=30)
radio = radios.RandomRadio()
session = radio.start_session(self.user)
for i in range(30):
radio.pick()
p = radio.pick()
# ensure 30 differents tracks have been suggested
tracks_id = [session_track.track.pk for session_track in session.session_tracks.all()]

Wyświetl plik

@ -7,6 +7,6 @@ coverage==4.0.3
django_coverage_plugin==1.1
flake8==2.5.0
django-test-plus==1.0.11
factory_boy==2.6.0
factory_boy>=2.8.1
model_mommy
tox

Wyświetl plik

@ -6,4 +6,3 @@ test:
- .:/app
environment:
- DJANGO_SETTINGS_MODULE=config.settings.test
- API_AUTHENTICATION_REQUIRED=False

18
dev.yml
Wyświetl plik

@ -52,12 +52,12 @@ services:
- redis
- celeryworker
nginx:
env_file: .env.dev
build: ./api/compose/nginx
links:
- api
volumes:
- ./api/funkwhale_api/media:/staticfiles/media
ports:
- "0.0.0.0:6001:80"
# nginx:
# env_file: .env.dev
# build: ./api/compose/nginx
# links:
# - api
# volumes:
# - ./api/funkwhale_api/media:/staticfiles/media
# ports:
# - "0.0.0.0:6001:80"