Set up basic CI
Some checks are pending
continuous-integration/drone/push Build is pending
continuous-integration/drone/pr Build is pending

This commit is contained in:
Rafael Epplée 2025-04-21 12:49:50 +02:00
parent 86437cbb9d
commit 509e86b758
No known key found for this signature in database
GPG key ID: B4EFE6DC59FAE118
8 changed files with 120 additions and 9 deletions

View file

@ -2,9 +2,80 @@ kind: pipeline
type: docker
name: default
services:
- name: postgres
image: docker.io/library/postgres:17.2
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
steps:
- name: greeting
image: alpine
commands:
- echo hello
- echo world
- name: restore_cache
# the `plugins` user seems to be owned by the drone organization
image: docker.io/plugins/cache:1.9
pull: true
settings:
backend: "filesystem"
restore: true
cache_key: "volume"
archive_format: "gzip"
# filesystem_cache_root: "/tmp/cache"
mount:
- "_build"
volumes:
- name: cache
path: /tmp/cache
- name: check
image: docker.io/library/elixir:1.18.3-otp-27
depends_on:
- restore_cache
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
- name: wait_for_postgres
image: docker.io/library/postgres:17.2
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
image: docker.io/library/elixir:1.18.3-otp-27
depends_on:
- restore_cache
# - wait_for_postgres
environment:
MIX_ENV: test
TEST_POSTGRES_HOST: postgres
commands:
# Install hex package manager
- mix local.hex --force
# Fetch dependencies
- mix deps.get
# Run tests
- mix test