docs-build:
stage: build
- only:
- - master@pleroma/pleroma
+ only: &docs-only
+ - stable@pleroma/pleroma
- develop@pleroma/pleroma
variables:
MIX_ENV: dev
unit-testing:
stage: test
services:
- - name: lainsoykaf/postgres-with-rum
+ - name: postgres:9.6
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
+ - mix coveralls --preload-modules
unit-testing-rum:
stage: test
services:
- - name: lainsoykaf/postgres-with-rum
+ - name: minibikini/postgres-with-rum:12
alias: postgres
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
variables:
- mix ecto.create
- mix ecto.migrate
- "mix ecto.migrate --migrations-path priv/repo/optional_migrations/rum_indexing/"
- - mix test --trace --preload-modules
+ - mix test --preload-modules
lint:
stage: test
docs-deploy:
stage: deploy
image: alpine:3.9
- only:
- - master@pleroma/pleroma
- - develop@pleroma/pleroma
+ only: *docs-only
before_script:
- apk update && apk add openssh-client rsync
script:
- 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
-# TODO: Restrict to master and develop
-
amd64:
stage: release
# TODO: Replace with upstream image when 1.9.0 comes out
image: rinpatch/elixir:1.9.0-rc.0
only: &release-only
- - master@pleroma/pleroma
+ - stable@pleroma/pleroma
- develop@pleroma/pleroma
- - feature/ci-release-build@pleroma/pleroma
+ - /^maint/.*$/@pleroma/pleroma
+ - /^release/.*$/@pleroma/pleroma
artifacts: &release-artifacts
name: "pleroma-$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA-$CI_JOB_NAME"
paths:
- release/*
+ # Ideally it would be never for master branch and with the next commit for develop,
+ # but Gitlab does not support neither `only` for artifacts
+ # nor setting it to never from .gitlab-ci.yml
+ # nor expiring with the next commit
+ expire_in: 42 yrs
+
cache: &release-cache
key: $CI_COMMIT_REF_NAME-$CI_JOB_NAME
paths:
script: &release
- mix deps.get --only prod
- mkdir release
+ - export PLEROMA_BUILD_BRANCH=$CI_COMMIT_REF_NAME
- mix release --path release