CI builds / pipeline now run tests and build static assets
This commit is contained in:
parent
76f98b74dd
commit
072605dea6
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
18
dev.yml
18
dev.yml
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue