From 583c5ba51250b5a31aa378149a51c759d4cccd9e Mon Sep 17 00:00:00 2001 From: Moritz Date: Mon, 23 Feb 2026 17:23:36 +0100 Subject: [PATCH 1/4] run docker build --- .drone.yml | 425 +++++++++++++++++++++++++++-------------------------- 1 file changed, 213 insertions(+), 212 deletions(-) diff --git a/.drone.yml b/.drone.yml index 9eb78f0..35f10ed 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,213 +1,213 @@ -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: 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 @@ -217,6 +217,7 @@ name: build-and-publish trigger: branch: - main + - fix/imprintor event: - push - tag @@ -253,8 +254,8 @@ steps: event: - push -depends_on: - - check-fast +#depends_on: +# - check-fast --- kind: pipeline From 3e024cf5b82554b28b19204559c58d7b0362cf6f Mon Sep 17 00:00:00 2001 From: Moritz Date: Mon, 23 Feb 2026 17:19:30 +0100 Subject: [PATCH 2/4] fix: update debian image to trixie (stable) to fix imprintor glibc version mismatch --- Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7a01d21..80757de 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,12 +7,12 @@ # This file is based on these images: # # - https://hub.docker.com/r/hexpm/elixir/tags - for the build image -# - https://hub.docker.com/_/debian?tab=tags&page=1&name=bullseye-20250317-slim - for the release image +# - https://hub.docker.com/_/debian?tab=tags&page=1&name=trixie-20260202-slim - for the release image # - https://pkgs.org/ - resource for finding needed packages -# - Ex: hexpm/elixir:1.18.3-erlang-27.3-debian-bullseye-20250317-slim +# - Ex: hexpm/elixir:1.18.3-erlang-27.3-debian-trixie-20260202-slim # -ARG BUILDER_IMAGE="hexpm/elixir:1.18.3-erlang-27.3-debian-bullseye-20250317-slim" -ARG RUNNER_IMAGE="debian:bullseye-20250317-slim" +ARG BUILDER_IMAGE="hexpm/elixir:1.18.3-erlang-27.3-debian-trixie-20260202-slim" +ARG RUNNER_IMAGE="debian:trixie-20260202-slim" FROM ${BUILDER_IMAGE} AS builder From 4cff2bbcefcb6e94b2a298d0b01fb15555c72926 Mon Sep 17 00:00:00 2001 From: Moritz Date: Mon, 23 Feb 2026 17:23:36 +0100 Subject: [PATCH 3/4] run docker build --- .drone.yml | 246 +---------------------------------------------------- 1 file changed, 1 insertion(+), 245 deletions(-) diff --git a/.drone.yml b/.drone.yml index 9eb78f0..2311c9a 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,222 +1,11 @@ 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 trigger: branch: - main + - fix/imprintor event: - push - tag @@ -252,36 +41,3 @@ 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 From 664e056643ab8372af203179580b0b5382c8dad4 Mon Sep 17 00:00:00 2001 From: Moritz Date: Mon, 23 Feb 2026 17:19:30 +0100 Subject: [PATCH 4/4] fix: update debian image to trixie (stable) to fix imprintor glibc version mismatch --- Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7a01d21..80757de 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,12 +7,12 @@ # This file is based on these images: # # - https://hub.docker.com/r/hexpm/elixir/tags - for the build image -# - https://hub.docker.com/_/debian?tab=tags&page=1&name=bullseye-20250317-slim - for the release image +# - https://hub.docker.com/_/debian?tab=tags&page=1&name=trixie-20260202-slim - for the release image # - https://pkgs.org/ - resource for finding needed packages -# - Ex: hexpm/elixir:1.18.3-erlang-27.3-debian-bullseye-20250317-slim +# - Ex: hexpm/elixir:1.18.3-erlang-27.3-debian-trixie-20260202-slim # -ARG BUILDER_IMAGE="hexpm/elixir:1.18.3-erlang-27.3-debian-bullseye-20250317-slim" -ARG RUNNER_IMAGE="debian:bullseye-20250317-slim" +ARG BUILDER_IMAGE="hexpm/elixir:1.18.3-erlang-27.3-debian-trixie-20260202-slim" +ARG RUNNER_IMAGE="debian:trixie-20260202-slim" FROM ${BUILDER_IMAGE} AS builder