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"
js:
stage: front
before_script:
- cd js
- npm install
script:
- npm run build
after_script:
- cd ../
cache:
paths:
- js/node_modules
artifacts:
paths:
- priv/static
untracked: false
expire_in: 30 days
elixir_format:
stage: back
before_script:
- mix deps.get
script:
- mix format --check-formatted --dry-run
cache:
paths:
- deps
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:
- mix coveralls
cache: cache:
paths: paths:
- deps - deps
- _build - _build
- .rebar3
- ~/.mix
- ~/.hex
- js/node_modules
before_script:
- cd js && npm install && npm run build && cd ../
- mix local.rebar --force
- mix local.hex --force
- mix deps.get
- MIX_ENV=test mix ecto.create
- MIX_ENV=test mix ecto.migrate
mix:
script:
- mix format --check-formatted --dry-run
- mix coveralls

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