matrix: ELIXIR_VERSION: - 1.14 - 1.15 variables: - &scw-secrets - SCW_ACCESS_KEY - SCW_SECRET_KEY - SCW_DEFAULT_ORGANIZATION_ID - &setup-hex "mix local.hex --force && mix local.rebar --force" - &on-release when: event: - push - tag branch: - develop - stable - refs/tags/v* - refs/tags/stable-* - &on-stable when: event: - push - tag branch: - stable - refs/tags/stable-* - &on-point-release when: event: - push branch: - develop - stable - &on-pr-open when: event: - pull_request - &tag-build "export BUILD_TAG=$${CI_COMMIT_TAG:-\"$CI_COMMIT_BRANCH\"} && export PLEROMA_BUILD_BRANCH=$BUILD_TAG" - &clean "(rm -rf release || true) && (rm -rf _build || true) && (rm -rf /root/.mix)" - &mix-clean "mix deps.clean --all && mix clean" services: postgres: image: postgres:15 when: event: - pull_request environment: POSTGRES_DB: pleroma_test POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres pipeline: lint: <<: *on-pr-open image: akkoma/ci-base:1.15 commands: - mix local.hex --force - mix local.rebar --force - mix format --check-formatted build: image: akkoma/ci-base:${ELIXIR_VERSION} <<: *on-pr-open environment: MIX_ENV: test POSTGRES_DB: pleroma_test POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres DB_HOST: postgres commands: - mix local.hex --force - mix local.rebar --force - mix deps.get - mix compile test: image: akkoma/ci-base:${ELIXIR_VERSION} <<: *on-pr-open environment: MIX_ENV: test POSTGRES_DB: pleroma_test POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres DB_HOST: postgres commands: - mix local.hex --force - mix local.rebar --force - mix deps.get - mix compile - mix ecto.drop -f -q - mix ecto.create - mix ecto.migrate - mix test --preload-modules --exclude erratic --exclude federated --max-cases 1