Handle new-style mastodon follow lists
[akkoma] / .gitlab-ci.yml
index 7c240d9f1523dedd0c55ecba4d72e8692ff08369..c07f1a5d34f9028945a997fe65ffbc776eb40491 100644 (file)
@@ -1,13 +1,11 @@
-image: elixir:1.7.2
-
-services:
-  - postgres:9.6.2
+image: elixir:1.8.1
 
 variables:
   POSTGRES_DB: pleroma_test
   POSTGRES_USER: postgres
   POSTGRES_PASSWORD: postgres
   DB_HOST: postgres
+  MIX_ENV: test
 
 cache:
   key: ${CI_COMMIT_REF_SLUG}
@@ -15,22 +13,68 @@ cache:
           - deps
           - _build
 stages:
-  - lint
+  - build
   - test
+  - deploy
 
 before_script:
   - mix local.hex --force
   - mix local.rebar --force
+
+build:
+  stage: build
+  script:
   - mix deps.get
-  - MIX_ENV=test mix ecto.create
-  - MIX_ENV=test mix ecto.migrate
+  - mix compile --force
 
-lint:
-  stage: lint
+docs-build:
+  stage: build
+  only:
+  - master@pleroma/pleroma
+  - develop@pleroma/pleroma
+  variables:
+    MIX_ENV: dev
   script:
-    - MIX_ENV=test mix format --check-formatted
+    - mix deps.get
+    - mix compile
+    - mix docs
+  artifacts:
+    paths:
+      - priv/static/doc
 
 unit-testing:
   stage: test
+  services:
+  - name: postgres:9.6.2
+    command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
+  script:
+    - mix ecto.create
+    - mix ecto.migrate
+    - mix test --trace --preload-modules
+
+lint:
+  stage: test
+  script:
+    - mix format --check-formatted
+
+analysis:
+  stage: test
+  script:
+    - mix deps.get
+    - mix credo --strict --only=warnings,todo,fixme,consistency,readability
+
+
+docs-deploy:
+  stage: deploy
+  image: alpine:3.9
+  only:
+  - master@pleroma/pleroma
+  - develop@pleroma/pleroma
+  before_script:
+    - apk update && apk add openssh-client rsync
   script:
-    - MIX_ENV=test mix test --trace
+    - mkdir -p ~/.ssh
+    - echo "${SSH_HOST_KEY}" > ~/.ssh/known_hosts
+    - eval $(ssh-agent -s)
+    - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
+    - rsync -hrvz --delete -e "ssh -p ${SSH_PORT}" priv/static/doc/ "${SSH_USER_HOST_LOCATION}/${CI_COMMIT_REF_NAME}"