From 1a1eaa7ef74e7cc61445a7dcb91f7dc6e623437c Mon Sep 17 00:00:00 2001 From: Joao P Dubas Date: Mon, 8 Jul 2024 16:59:46 +0000 Subject: [PATCH] feat(ci): use slim image with parallel steps Also, install git and make in every step. --- .drone.yml | 60 ++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 17 deletions(-) diff --git a/.drone.yml b/.drone.yml index c3ef0a0..01e7003 100644 --- a/.drone.yml +++ b/.drone.yml @@ -36,64 +36,82 @@ steps: region: us-east-1 restore: true - - name: get dependencies - image: &elixir 'hexpm/elixir:1.17.2-erlang-27.0-debian-bookworm-20240701-slim' - commands: - - apt-get update - - apt-get install -y git - - mix do local.rebar --force, local.hex --force - - mix do deps.get, deps.compile - - mix compile --force - - name: test - image: *elixir + image: &elixir 'hexpm/elixir:1.17.2-erlang-27.0-debian-bookworm-20240701-slim' environment: MIX_ENV: test POSTGRES_HOST: &db_host db POSTGRES_USER: &db_user postgres POSTGRES_PASS: &db_pass postgres commands: - - mix do local.rebar --force, local.hex --force + - apt-get update + - apt-get install -y git make + - mix do local.rebar --force, local.hex --force, deps.get, deps.compile - mix test --cover --trace --slowest 10 + depends_on: + - 'database healthecheck' + - 'restore cache' - name: compile app image: *elixir commands: - - mix do local.rebar --force, local.hex --force + - apt-get update + - apt-get install -y git make + - mix do local.rebar --force, local.hex --force, deps.get, deps.compile - mix compile --force --all-warnings --warnings-as-errors + depends_on: + - 'restore cache' - name: audit deps image: *elixir commands: - - mix do local.rebar --force, local.hex --force + - apt-get update + - apt-get install -y git make + - mix do local.rebar --force, local.hex --force, deps.get, deps.compile - mix hex.audit - mix deps.audit - mix deps.unlock --check-unused # - mix hex.outdated + depends_on: + - 'restore cache' - name: format check image: *elixir commands: - - mix do local.rebar --force, local.hex --force + - apt-get update + - apt-get install -y git make + - mix do local.rebar --force, local.hex --force, deps.get, deps.compile - mix format --dry-run --check-formatted + depends_on: + - 'restore cache' - name: credo check image: *elixir commands: - - mix do local.rebar --force, local.hex --force + - mix do local.rebar --force, local.hex --force, deps.get, deps.compile - mix credo suggest --strict --format=flycheck + depends_on: + - 'restore cache' - name: dialyzer check image: *elixir commands: - - mix do local.rebar --force, local.hex --force + - apt-get update + - apt-get install -y git make + - mix do local.rebar --force, local.hex --force, deps.get, deps.compile - mix dialyzer --no-check --quiet --ignore-exit-status --format short + depends_on: + - 'restore cache' - name: sobelow check image: *elixir commands: - - mix do local.rebar --force, local.hex --force + - apt-get update + - apt-get install -y git make + - mix do local.rebar --force, local.hex --force, deps.get, deps.compile - mix sobelow + depends_on: + - 'restore cache' - name: rebuild cache image: *drone_cache @@ -114,6 +132,14 @@ steps: path_style: true rebuild: true region: us-east-1 + depends_on: + - 'test' + - 'compile app' + - 'audit deps' + - 'format check' + - 'credo check' + - 'dialyzer check' + - 'sobelow check' services: - name: *db_host