huh
[akkoma] / .gitlab-ci.yml
1 image: elixir:1.8.1
2
3
4 variables:
5 POSTGRES_DB: pleroma_test
6 POSTGRES_USER: postgres
7 POSTGRES_PASSWORD: postgres
8 DB_HOST: postgres
9 MIX_ENV: test
10
11 cache:
12 key: ${CI_COMMIT_REF_SLUG}
13 paths:
14 - deps
15 - _build
16 stages:
17 - build
18 - test
19 - deploy
20
21 before_script:
22 - mix local.hex --force
23 - mix local.rebar --force
24
25 build:
26 stage: build
27 script:
28 - mix deps.get
29 - mix compile --force
30
31 docs_build:
32 stage: build
33 only:
34 - master@pleroma/pleroma
35 - develop@pleroma/pleroma
36 variables:
37 MIX_ENV: dev
38 script:
39 - mix deps.get
40 - mix compile
41 - mix docs
42 artifacts:
43 paths:
44 - priv/static/doc
45
46 unit-testing:
47 stage: test
48 services:
49 - name: postgres:9.6.2
50 command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
51 script:
52 - mix ecto.create
53 - mix ecto.migrate
54 - mix test --trace --preload-modules
55
56 lint:
57 stage: test
58 script:
59 - mix format --check-formatted
60
61 analysis:
62 stage: test
63 script:
64 - mix credo --strict --only=warnings,todo,fixme,consistency,readability
65
66
67 docs_deploy:
68 stage: deploy
69 image: alpine:3.9
70 services:
71 only:
72 - master@pleroma/pleroma
73 - develop@pleroma/pleroma
74 before_script:
75 - apk update && apk add openssh-client rsync
76 script:
77 - mkdir -p ~/.ssh
78 - echo "${SSH_HOST_KEY}" > ~/.ssh/known_hosts
79 - eval $(ssh-agent -s)
80 - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
81 - rsync -hrvz --delete -e "ssh -p ${SSH_PORT}" priv/static/doc/ "${SSH_USER_HOST_LOCATION}/${CI_COMMIT_REF_NAME}"