Commit 072605de authored by Eliot Berriot's avatar Eliot Berriot 💬

CI builds / pipeline now run tests and build static assets

parent 76f98b74
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.
......
......@@ -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
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
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
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
......@@ -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):
......
......@@ -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()]
......
......@@ -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
......@@ -6,4 +6,3 @@ test:
- .:/app
environment:
- DJANGO_SETTINGS_MODULE=config.settings.test
- API_AUTHENTICATION_REQUIRED=False
......@@ -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"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment