diff --git a/.drone.yml b/.drone.yml index ad02fba..70e881f 100644 --- a/.drone.yml +++ b/.drone.yml @@ -102,112 +102,112 @@ volumes: host: path: /tmp/drone_cache -# --- -# kind: pipeline -# type: docker -# name: check-full -# -# services: -# - name: postgres -# image: docker.io/library/postgres:18.1 -# environment: -# POSTGRES_USER: postgres -# POSTGRES_PASSWORD: postgres -# -# #trigger: -# # event: -# # - promote -# # target: -# # - production -# -# steps: -# - name: compute cache key -# image: docker.io/library/elixir:1.18.3-otp-27 -# commands: -# - mix_lock_hash=$(sha256sum mix.lock | cut -d ' ' -f 1) -# - echo "$DRONE_REPO_OWNER/$DRONE_REPO_NAME/$mix_lock_hash" >> .cache_key -# # Print cache key for debugging -# - cat .cache_key -# -# - name: restore-cache -# image: drillster/drone-volume-cache -# settings: -# restore: true -# mount: -# - ./deps -# - ./_build -# ttl: 30 -# volumes: -# - name: cache -# path: /cache -# -# - name: lint -# image: docker.io/library/elixir:1.18.3-otp-27 -# commands: -# # Install hex package manager -# - mix local.hex --force -# # Fetch dependencies -# - mix deps.get -# # Check for compilation errors & warnings -# - mix compile --warnings-as-errors -# # Check formatting -# - mix format --check-formatted -# # Security checks -# - mix sobelow --config -# # Check dependencies for known vulnerabilities -# - mix deps.audit -# # Check for dependencies that are not maintained anymore -# - mix hex.audit -# # Provide hints for improving code quality -# - mix credo -# # Check that translations are up to date -# - mix gettext.extract --check-up-to-date -# -# - name: wait_for_postgres -# image: docker.io/library/postgres:18.1 -# commands: -# # Wait for postgres to become available -# - | -# for i in {1..20}; do -# if pg_isready -h postgres -U postgres; then -# exit 0 -# else -# true -# fi -# sleep 2 -# done -# echo "Postgres did not become available, aborting." -# exit 1 -# -# - name: test-all -# image: docker.io/library/elixir:1.18.3-otp-27 -# environment: -# MIX_ENV: test -# TEST_POSTGRES_HOST: postgres -# TEST_POSTGRES_PORT: 5432 -# commands: -# # Install hex package manager -# - mix local.hex --force -# # Fetch dependencies -# - mix deps.get -# # Run all tests (including slow/performance and UI tests) -# - mix test -# -# - name: rebuild-cache -# image: drillster/drone-volume-cache -# settings: -# rebuild: true -# mount: -# - ./deps -# - ./_build -# volumes: -# - name: cache -# path: /cache -# -# volumes: -# - name: cache -# host: -# path: /tmp/drone_cache +--- +kind: pipeline +type: docker +name: check-full + +services: + - name: postgres + image: docker.io/library/postgres:18.1 + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + +#trigger: +# event: +# - promote +# target: +# - production + +steps: + - name: compute cache key + image: docker.io/library/elixir:1.18.3-otp-27 + commands: + - mix_lock_hash=$(sha256sum mix.lock | cut -d ' ' -f 1) + - echo "$DRONE_REPO_OWNER/$DRONE_REPO_NAME/$mix_lock_hash" >> .cache_key + # Print cache key for debugging + - cat .cache_key + + - name: restore-cache + image: drillster/drone-volume-cache + settings: + restore: true + mount: + - ./deps + - ./_build + ttl: 30 + volumes: + - name: cache + path: /cache + + - name: lint + image: docker.io/library/elixir:1.18.3-otp-27 + commands: + # Install hex package manager + - mix local.hex --force + # Fetch dependencies + - mix deps.get + # Check for compilation errors & warnings + - mix compile --warnings-as-errors + # Check formatting + - mix format --check-formatted + # Security checks + - mix sobelow --config + # Check dependencies for known vulnerabilities + - mix deps.audit + # Check for dependencies that are not maintained anymore + - mix hex.audit + # Provide hints for improving code quality + - mix credo + # Check that translations are up to date + - mix gettext.extract --check-up-to-date + + - name: wait_for_postgres + image: docker.io/library/postgres:18.1 + commands: + # Wait for postgres to become available + - | + for i in {1..20}; do + if pg_isready -h postgres -U postgres; then + exit 0 + else + true + fi + sleep 2 + done + echo "Postgres did not become available, aborting." + exit 1 + + - name: test-all + image: docker.io/library/elixir:1.18.3-otp-27 + environment: + MIX_ENV: test + TEST_POSTGRES_HOST: postgres + TEST_POSTGRES_PORT: 5432 + commands: + # Install hex package manager + - mix local.hex --force + # Fetch dependencies + - mix deps.get + # Run all tests (including slow/performance and UI tests) + - mix test + + - name: rebuild-cache + image: drillster/drone-volume-cache + settings: + rebuild: true + mount: + - ./deps + - ./_build + volumes: + - name: cache + path: /cache + +volumes: + - name: cache + host: + path: /tmp/drone_cache --- kind: pipeline @@ -254,8 +254,8 @@ steps: event: - push -#depends_on: -# - check-fast +depends_on: + - check-fast --- kind: pipeline