forked from AkkomaGang/akkoma
c3bcc4f6a2
`mix coveralls` runs the tests by itself, exits with failure if one of them fails and accepts the same args, so there is no reason to run two of them at the same time.
143 lines
3.9 KiB
YAML
143 lines
3.9 KiB
YAML
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: lainsoykaf/postgres-with-rum
|
|
alias: postgres
|
|
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
|
script:
|
|
- mix deps.get
|
|
- mix ecto.create
|
|
- mix ecto.migrate
|
|
- mix coveralls --trace --preload-modules
|
|
|
|
unit-testing-rum:
|
|
stage: test
|
|
services:
|
|
- name: lainsoykaf/postgres-with-rum
|
|
alias: postgres
|
|
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
|
variables:
|
|
RUM_ENABLED: "true"
|
|
script:
|
|
- mix deps.get
|
|
- mix ecto.create
|
|
- mix ecto.migrate
|
|
- "mix ecto.migrate --migrations-path priv/repo/optional_migrations/rum_indexing/"
|
|
- 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}"
|
|
|
|
review_app:
|
|
image: alpine:3.9
|
|
stage: deploy
|
|
before_script:
|
|
- apk update && apk add openssh-client git
|
|
when: manual
|
|
environment:
|
|
name: review/$CI_COMMIT_REF_NAME
|
|
url: https://$CI_ENVIRONMENT_SLUG.pleroma.online/
|
|
on_stop: stop_review_app
|
|
only:
|
|
- branches
|
|
except:
|
|
- master
|
|
- develop
|
|
script:
|
|
- echo "$CI_ENVIRONMENT_SLUG"
|
|
- mkdir -p ~/.ssh
|
|
- eval $(ssh-agent -s)
|
|
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
|
- ssh-keyscan -H "pleroma.online" >> ~/.ssh/known_hosts
|
|
- (ssh -t dokku@pleroma.online -- apps:create "$CI_ENVIRONMENT_SLUG") || true
|
|
- ssh -t dokku@pleroma.online -- config:set "$CI_ENVIRONMENT_SLUG" APP_NAME="$CI_ENVIRONMENT_SLUG" APP_HOST="$CI_ENVIRONMENT_SLUG.pleroma.online" MIX_ENV=dokku
|
|
- (ssh -t dokku@pleroma.online -- postgres:create $(echo $CI_ENVIRONMENT_SLUG | sed -e 's/-/_/g')_db) || true
|
|
- (ssh -t dokku@pleroma.online -- postgres:link $(echo $CI_ENVIRONMENT_SLUG | sed -e 's/-/_/g')_db "$CI_ENVIRONMENT_SLUG") || true
|
|
- (ssh -t dokku@pleroma.online -- certs:add "$CI_ENVIRONMENT_SLUG" /home/dokku/server.crt /home/dokku/server.key) || true
|
|
- (git remote add dokku dokku@pleroma.online:$CI_ENVIRONMENT_SLUG) || true
|
|
- git push -f dokku $CI_COMMIT_SHA:refs/heads/master
|
|
|
|
stop_review_app:
|
|
image: alpine:3.9
|
|
stage: deploy
|
|
before_script:
|
|
- apk update && apk add openssh-client git
|
|
when: manual
|
|
environment:
|
|
name: review/$CI_COMMIT_REF_NAME
|
|
action: stop
|
|
script:
|
|
- echo "$CI_ENVIRONMENT_SLUG"
|
|
- mkdir -p ~/.ssh
|
|
- eval $(ssh-agent -s)
|
|
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
|
- ssh-keyscan -H "pleroma.online" >> ~/.ssh/known_hosts
|
|
- ssh -t dokku@pleroma.online -- --force apps:destroy "$CI_ENVIRONMENT_SLUG"
|
|
- ssh -t dokku@pleroma.online -- --force postgres:destroy $(echo $CI_ENVIRONMENT_SLUG | sed -e 's/-/_/g')_db
|