Merge pull request 'PR Woodpecker CI workflow' (#7825) from phnt/pleroma:woodpecker-pr-ci into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7825
This commit is contained in:
commit
1405f5dc8b
6 changed files with 121 additions and 7 deletions
9
.woodpecker/changelog.yaml
Normal file
9
.woodpecker/changelog.yaml
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
when:
|
||||||
|
- event: pull_request
|
||||||
|
|
||||||
|
steps:
|
||||||
|
check-changelog:
|
||||||
|
image: docker.io/alpine:3.23
|
||||||
|
commands:
|
||||||
|
- apk add --no-cache git
|
||||||
|
- sh ./tools/check-changelog
|
||||||
65
.woodpecker/lint.yaml
Normal file
65
.woodpecker/lint.yaml
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
when:
|
||||||
|
- event: pull_request
|
||||||
|
path: [ "*.ex", "*.eex", "*.exs", "mix.lock", ".woodpecker/**" ]
|
||||||
|
- event: push
|
||||||
|
branch: ${CI_REPO_DEFAULT_BRANCH}
|
||||||
|
path: [ "*.ex", "*.eex", "*.exs", "mix.lock", ".woodpecker/**" ]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
mix-format:
|
||||||
|
image: &elixir-image
|
||||||
|
docker.io/elixir:1.15-alpine
|
||||||
|
failure: ignore
|
||||||
|
commands:
|
||||||
|
- |
|
||||||
|
if ! mix format --check-formatted; then
|
||||||
|
touch fail.stamp
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
credo:
|
||||||
|
image: *elixir-image
|
||||||
|
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
|
||||||
|
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
|
||||||
|
|
@ -1,9 +1,15 @@
|
||||||
when:
|
when:
|
||||||
- event:
|
- event: pull_request
|
||||||
- pull_request
|
path: [ "*.ex", "*.eex", "*.exs", "mix.lock", ".woodpecker/**" ]
|
||||||
|
- event: push
|
||||||
|
branch: ${CI_REPO_DEFAULT_BRANCH}
|
||||||
|
path: [ "*.ex", "*.eex", "*.exs", "mix.lock", ".woodpecker/**" ]
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- lint
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
test:
|
unit-testing-elixir-1.15:
|
||||||
image: elixir:1.15-alpine
|
image: elixir:1.15-alpine
|
||||||
environment:
|
environment:
|
||||||
MIX_ENV: test
|
MIX_ENV: test
|
||||||
|
|
@ -17,7 +23,7 @@ steps:
|
||||||
- su testuser -c "HOME=/home/testuser mix local.hex --force"
|
- 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 local.rebar --force"
|
||||||
- su testuser -c "HOME=/home/testuser mix deps.get"
|
- su testuser -c "HOME=/home/testuser mix deps.get"
|
||||||
- su testuser -c "HOME=/home/testuser mix test"
|
- su testuser -c "HOME=/home/testuser mix pleroma.test_runner --preload-modules"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
postgres:
|
postgres:
|
||||||
34
.woodpecker/unit-testing-elixir-1.18.yaml
Normal file
34
.woodpecker/unit-testing-elixir-1.18.yaml
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
when:
|
||||||
|
- event: pull_request
|
||||||
|
path: [ "*.ex", "*.eex", "*.exs", "mix.lock", ".woodpecker/**" ]
|
||||||
|
- event: push
|
||||||
|
branch: ${CI_REPO_DEFAULT_BRANCH}
|
||||||
|
path: [ "*.ex", "*.eex", "*.exs", "mix.lock", ".woodpecker/**" ]
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- lint
|
||||||
|
|
||||||
|
steps:
|
||||||
|
unit-testing-elixir-1.18:
|
||||||
|
image: elixir:1.18-otp-27-alpine
|
||||||
|
environment:
|
||||||
|
MIX_ENV: test
|
||||||
|
DB_HOST: postgres
|
||||||
|
DB_PORT: 5432
|
||||||
|
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"
|
||||||
|
- su testuser -c "HOME=/home/testuser mix pleroma.test_runner --preload-modules"
|
||||||
|
|
||||||
|
services:
|
||||||
|
postgres:
|
||||||
|
image: postgres:13-alpine
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: pleroma_test
|
||||||
|
POSTGRES_USER: postgres
|
||||||
|
POSTGRES_PASSWORD: postgres
|
||||||
0
changelog.d/woodpecker-pr-pipeline.skip
Normal file
0
changelog.d/woodpecker-pr-pipeline.skip
Normal file
|
|
@ -1,14 +1,14 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
echo "adding ownership exception"
|
echo "adding ownership exception"
|
||||||
git config --global --add safe.directory $(pwd)
|
git config --global --add safe.directory "$(pwd)"
|
||||||
|
|
||||||
echo "looking for change log"
|
echo "looking for change log"
|
||||||
|
|
||||||
git remote add upstream https://git.pleroma.social/pleroma/pleroma.git
|
git remote add upstream https://git.pleroma.social/pleroma/pleroma.git
|
||||||
git fetch upstream ${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}:refs/remotes/upstream/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME
|
git fetch upstream ${CI_COMMIT_TARGET_BRANCH}:refs/remotes/upstream/${CI_COMMIT_TARGET_BRANCH}
|
||||||
|
|
||||||
git diff --raw --no-renames upstream/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME HEAD -- changelog.d | \
|
git diff --raw --no-renames upstream/${CI_COMMIT_TARGET_BRANCH} HEAD -- changelog.d | \
|
||||||
grep ' A\t' | grep '\.\(skip\|add\|remove\|fix\|security\|change\)$'
|
grep ' A\t' | grep '\.\(skip\|add\|remove\|fix\|security\|change\)$'
|
||||||
ret=$?
|
ret=$?
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue