MIX_ENV: test
cache: &global_cache_policy
- key: ${CI_COMMIT_REF_SLUG}
+ key:
+ files:
+ - mix.lock
paths:
- deps
- _build
- docker
before_script:
+ - echo $MIX_ENV
+ - rm -rf _build/*/lib/pleroma
- apt-get update && apt-get install -y cmake
- mix local.hex --force
- mix local.rebar --force
- apt-get -qq update
- apt-get install -y libmagic-dev
+after_script:
+ - rm -rf _build/*/lib/pleroma
+
build:
stage: build
+ only:
+ changes:
+ - "**/*.ex"
+ - "**/*.exs"
+ - "mix.lock"
script:
- mix compile --force
spec-build:
stage: test
+ only:
+ changes:
+ - "lib/pleroma/web/api_spec/**/*.ex"
+ - "lib/pleroma/web/api_spec.ex"
artifacts:
paths:
- spec.json
unit-testing:
stage: test
- retry: 2
+ only:
+ changes:
+ - "**/*.ex"
+ - "**/*.exs"
+ - "mix.lock"
cache: &testing_cache_policy
<<: *global_cache_policy
policy: pull
unit-testing-rum:
stage: test
- retry: 2
+ only:
+ changes:
+ - "**/*.ex"
+ - "**/*.exs"
+ - "mix.lock"
cache: *testing_cache_policy
services:
- name: minibikini/postgres-with-rum:12
- mix test --preload-modules
lint:
+ image: elixir:1.12
stage: test
+ only:
+ changes:
+ - "**/*.ex"
+ - "**/*.exs"
+ - "mix.lock"
cache: *testing_cache_policy
script:
- mix format --check-formatted
analysis:
stage: test
+ only:
+ changes:
+ - "**/*.ex"
+ - "**/*.exs"
+ - "mix.lock"
cache: *testing_cache_policy
script:
- mix credo --strict --only=warnings,todo,fixme,consistency,readability
+cycles:
+ stage: test
+ image: elixir:1.11
+ only:
+ changes:
+ - "**/*.ex"
+ - "**/*.exs"
+ - "mix.lock"
+ cache: {}
+ script:
+ - mix deps.get
+ - mix compile
+ - mix xref graph --format cycles --label compile | awk '{print $0} END{exit ($0 != "No cycles found")}'
+
docs-deploy:
stage: deploy
cache: *testing_cache_policy
- apk add curl
script:
- curl -X POST -F"token=$API_DOCS_PIPELINE_TRIGGER" -F'ref=master' -F"variables[BRANCH]=$CI_COMMIT_REF_NAME" -F"variables[JOB_REF]=$CI_JOB_ID" https://git.pleroma.social/api/v4/projects/1130/trigger/pipeline
-
-
+
+
stop_review_app:
image: alpine:3.9
stage: deploy
amd64:
stage: release
- image: elixir:1.10.3
+ image: elixir:1.10.4
only: &release-only
- stable@pleroma/pleroma
- develop@pleroma/pleroma
stage: release
artifacts: *release-artifacts
only: *release-only
- image: elixir:1.10.3-alpine
+ image: elixir:1.10.4-alpine
cache: *release-cache
variables: *release-variables
before_script: &before-release-musl
only: *release-only
tags:
- arm32-specified
- image: arm32v7/elixir:1.10.3
+ image: arm32v7/elixir:1.10.4
cache: *release-cache
variables: *release-variables
before_script: *before-release
only: *release-only
tags:
- arm32-specified
- image: arm32v7/elixir:1.10.3-alpine
+ image: arm32v7/elixir:1.10.4-alpine
cache: *release-cache
variables: *release-variables
before_script: *before-release-musl
only: *release-only
tags:
- arm
- image: arm64v8/elixir:1.10.3
+ image: arm64v8/elixir:1.10.4
cache: *release-cache
variables: *release-variables
before_script: *before-release
only: *release-only
tags:
- arm
- image: arm64v8/elixir:1.10.3-alpine
+ image: arm64v8/elixir:1.10.4-alpine
cache: *release-cache
variables: *release-variables
before_script: *before-release-musl
IMAGE_TAG_SLUG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
IMAGE_TAG_LATEST: $CI_REGISTRY_IMAGE:latest
IMAGE_TAG_LATEST_STABLE: $CI_REGISTRY_IMAGE:latest-stable
- DOCKER_BUILDX_URL: https://github.com/docker/buildx/releases/download/v0.4.1/buildx-v0.4.1.linux-amd64
- DOCKER_BUILDX_HASH: 71a7d01439aa8c165a25b59c44d3f016fddbd98b
+ DOCKER_BUILDX_URL: https://github.com/docker/buildx/releases/download/v0.6.3/buildx-v0.6.3.linux-amd64
+ DOCKER_BUILDX_HASH: 980e6b9655f971991fbbb5fd6cd19f1672386195
before_script: &before-docker
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker pull $IMAGE_TAG_SLUG || true