Set up basic CI
This commit is contained in:
parent
86437cbb9d
commit
1dd7f907e5
8 changed files with 78 additions and 9 deletions
43
.drone.yml
43
.drone.yml
|
|
@ -2,9 +2,42 @@ 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: lint & test
|
||||
image: docker.io/library/elixir:1.18.3-otp-27
|
||||
environment:
|
||||
MIX_ENV: test
|
||||
TEST_POSTGRES_HOST: postgres
|
||||
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
|
||||
# Wait for postgres to become available
|
||||
# TODO: pg_isready is not installed in the elixir image
|
||||
# - |
|
||||
# for i in {1..20}; do
|
||||
# pg_isready -h postgres -p $DATABASE_PORT && break
|
||||
# sleep 2
|
||||
# done
|
||||
# echo "Postgres did not become available, aborting"
|
||||
# exit 1
|
||||
# Security checks
|
||||
- mix sobelow --config
|
||||
# Check dependencies for known vulnerabilities
|
||||
- mix deps.audit
|
||||
# Check for dependencies that are not maintained anymore
|
||||
- mix hex.audit
|
||||
# Run tests
|
||||
- mix test
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue