Multiple dependencies require OTP27 and 1.17 is the oldest version supporting it. Also bumps Docker Erlang version to current newest 27.
78 lines
2.5 KiB
YAML
78 lines
2.5 KiB
YAML
when:
|
|
- event: pull_request
|
|
path: [ "**/*.ex", "**/*.eex", "**/*.exs", "mix.lock", ".woodpecker/**" ]
|
|
evaluate: 'CI_COMMIT_SOURCE_BRANCH != "weblate"'
|
|
- event: push
|
|
branch: ${CI_REPO_DEFAULT_BRANCH}
|
|
path: [ "**/*.ex", "**/*.eex", "**/*.exs", "mix.lock", ".woodpecker/**" ]
|
|
|
|
labels:
|
|
platform: linux/amd64
|
|
|
|
variables:
|
|
script_file_entrypoint: &script_file_entrypoint
|
|
- /bin/sh
|
|
- -c
|
|
- 'printf "%s" "$CI_SCRIPT" | base64 -d > /tmp/ci-script.sh && /bin/sh -xe /tmp/ci-script.sh'
|
|
|
|
steps:
|
|
mix-format:
|
|
image: &elixir-image
|
|
docker.io/elixir:1.17-otp-27-alpine
|
|
entrypoint: *script_file_entrypoint
|
|
failure: ignore
|
|
commands:
|
|
- |
|
|
if ! mix format --check-formatted; then
|
|
touch fail.stamp
|
|
exit 1
|
|
fi
|
|
|
|
credo:
|
|
image: *elixir-image
|
|
entrypoint: *script_file_entrypoint
|
|
failure: ignore
|
|
environment:
|
|
MIX_ENV: test
|
|
commands:
|
|
- apk add --no-cache build-base cmake exiftool ffmpeg file-dev git openssl
|
|
- adduser -D -h /home/testuser testuser
|
|
- mkdir -p /home/testuser/.mix /home/testuser/.hex
|
|
- chown -R testuser:testuser . /home/testuser
|
|
- su testuser -c "HOME=/home/testuser mix local.hex --force"
|
|
- su testuser -c "HOME=/home/testuser mix local.rebar --force"
|
|
- su testuser -c "HOME=/home/testuser mix deps.get"
|
|
- |
|
|
if ! su testuser -c "HOME=/home/testuser mix analyze"; then
|
|
touch fail.stamp
|
|
exit 1
|
|
fi
|
|
|
|
# cycles:
|
|
# image: *elixir-image
|
|
# failure: ignore
|
|
# commands:
|
|
# - apk add --no-cache build-base cmake exiftool ffmpeg file-dev git openssl
|
|
# - adduser -D -h /home/testuser testuser
|
|
# - mkdir -p /home/testuser/.mix /home/testuser/.hex
|
|
# - chown -R testuser:testuser . /home/testuser
|
|
# - su testuser -c "HOME=/home/testuser mix local.hex --force"
|
|
# - su testuser -c "HOME=/home/testuser mix local.rebar --force"
|
|
# - su testuser -c "HOME=/home/testuser mix compile"
|
|
# - |
|
|
# if ! su testuser -c "HOME=/home/testuser mix xref graph --format cycles --label compile | awk '{print $0} END{exit ($0 != \"No cycles found\")}'"; then
|
|
# touch fail.stamp
|
|
# exit 1
|
|
# fi
|
|
|
|
ensure-status:
|
|
image: *elixir-image
|
|
entrypoint: *script_file_entrypoint
|
|
commands: |
|
|
if test -f fail.stamp; then
|
|
echo "One or more previous steps fails. Failing workflow..."
|
|
exit 1
|
|
else
|
|
echo "All steps passed"
|
|
exit 0
|
|
fi
|