image: elixir:1.8.1 services: - name: postgres:9.6.2 command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] variables: POSTGRES_DB: pleroma_test POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres DB_HOST: postgres MIX_ENV: test cache: key: ${CI_COMMIT_REF_SLUG} paths: - deps - _build stages: - lint - test - analysis - docs_build - docs_deploy before_script: - mix local.hex --force - mix local.rebar --force - mix deps.get - mix compile --force - mix ecto.create - mix ecto.migrate lint: stage: lint script: - mix format --check-formatted unit-testing: stage: test script: - mix test --trace --preload-modules analysis: stage: analysis script: - mix credo --strict --only=warnings,todo,fixme,consistency,readability docs_build: stage: docs_build services: only: - master@pleroma/pleroma - develop@pleroma/pleroma variables: MIX_ENV: dev before_script: - mix local.hex --force - mix local.rebar --force - mix deps.get - mix compile script: - mix docs artifacts: paths: - priv/static/doc docs_deploy: stage: docs_deploy image: alpine:3.9 services: only: - master@pleroma/pleroma - develop@pleroma/pleroma before_script: - apk update && apk add openssh-client rsync script: - 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}"