diff --git a/.drone.yml b/.drone.yml index 2311c9a..35f10ed 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,3 +1,215 @@ +# kind: pipeline +# type: docker +# name: check-fast +# +# services: +# - name: postgres +# image: docker.io/library/postgres:18.1 +# environment: +# POSTGRES_USER: postgres +# POSTGRES_PASSWORD: postgres +# +# #trigger: +# # event: +# # - push +# +# 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-fast +# 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 fast tests (excludes slow/performance and UI tests) +# - mix test --exclude slow --exclude ui --max-cases 2 +# +# - 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 type: docker name: build-and-publish @@ -41,3 +253,36 @@ steps: when: event: - push + +#depends_on: +# - check-fast + +--- +kind: pipeline +type: docker +name: renovate + +trigger: + event: + - cron + - custom + branch: + - main + +environment: + LOG_LEVEL: debug + +steps: + - name: renovate + image: renovate/renovate:42.97 + environment: + RENOVATE_CONFIG_FILE: "renovate_backend_config.js" + RENOVATE_TOKEN: + from_secret: RENOVATE_TOKEN + GITHUB_COM_TOKEN: + from_secret: GITHUB_COM_TOKEN + commands: + # https://github.com/renovatebot/renovate/discussions/15049 + - unset GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL + - renovate-config-validator + - renovate