Introduce CI stages (front / back), mix format runs in parallel

This commit is contained in:
Thomas Citharel 2018-12-18 12:26:10 +01:00
parent 06da0085c7
commit 932837f7bb
2 changed files with 48 additions and 21 deletions

View file

@ -1,8 +1,8 @@
image: tcitworld/mobilizon-ci image: tcitworld/mobilizon-ci
services: stages:
- name: mdillon/postgis:10 - front
alias: postgres - back
variables: variables:
MIX_ENV: "test" MIX_ENV: "test"
@ -12,24 +12,48 @@ variables:
POSTGRES_HOST: postgres POSTGRES_HOST: postgres
GEOLITE_CITIES_PATH: "/usr/share/GeoIP/GeoLite2-City.mmdb" GEOLITE_CITIES_PATH: "/usr/share/GeoIP/GeoLite2-City.mmdb"
cache: js:
paths: stage: front
- deps before_script:
- _build - cd js
- .rebar3 - npm install
- ~/.mix script:
- ~/.hex - npm run build
- js/node_modules after_script:
- cd ../
cache:
paths:
- js/node_modules
artifacts:
paths:
- priv/static
untracked: false
expire_in: 30 days
before_script: elixir_format:
- cd js && npm install && npm run build && cd ../ stage: back
- mix local.rebar --force before_script:
- mix local.hex --force - mix deps.get
- mix deps.get script:
- MIX_ENV=test mix ecto.create - mix format --check-formatted --dry-run
- MIX_ENV=test mix ecto.migrate cache:
paths:
- deps
mix: mix:
stage: back
services:
- name: mdillon/postgis:10
alias: postgres
dependencies:
- js
before_script:
- mix deps.get
- MIX_ENV=test mix ecto.create
- MIX_ENV=test mix ecto.migrate
script: script:
- mix format --check-formatted --dry-run - mix coveralls
- mix coveralls cache:
paths:
- deps
- _build

View file

@ -1,6 +1,9 @@
FROM elixir:latest FROM elixir:latest
LABEL maintainer="Thomas Citharel <tcit@tcit.fr>"
ENV REFRESHED_AT=2018-12-18
RUN apt-get update -yq && apt-get install -yq build-essential inotify-tools postgresql-client git curl gnupg RUN apt-get update -yq && apt-get install -yq build-essential inotify-tools postgresql-client git curl gnupg
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash && apt-get install nodejs -yq RUN curl -sL https://deb.nodesource.com/setup_10.x | bash && apt-get install nodejs -yq
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN mix local.hex --force && mix local.rebar --force
RUN curl http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz --output GeoLite2-City.tar.gz -s && tar zxf GeoLite2-City.tar.gz && mkdir -p /usr/share/GeoIP && mv GeoLite2-City_*/GeoLite2-City.mmdb /usr/share/GeoIP/GeoLite2-City.mmdb RUN curl http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz --output GeoLite2-City.tar.gz -s && tar zxf GeoLite2-City.tar.gz && mkdir -p /usr/share/GeoIP && mv GeoLite2-City_*/GeoLite2-City.mmdb /usr/share/GeoIP/GeoLite2-City.mmdb