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} paths: - deps - _build stages: - build - test - deploy before_script: - mix local.hex --force - mix local.rebar --force build: stage: build script: - mix deps.get - mix compile --force docs-build: stage: build only: - master@pleroma/pleroma - develop@pleroma/pleroma variables: MIX_ENV: dev script: - 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: - 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}"