37 lines
988 B
YAML
37 lines
988 B
YAML
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: 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
|
|
# Run tests
|
|
- mix test
|