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:
|
||||
- event:
|
||||
- pull_request
|
||||
- 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:
|
||||
test:
|
||||
unit-testing-elixir-1.15:
|
||||
image: elixir:1.15-alpine
|
||||
environment:
|
||||
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.rebar --force"
|
||||
- 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:
|
||||
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
|
||||
|
||||
echo "adding ownership exception"
|
||||
git config --global --add safe.directory $(pwd)
|
||||
git config --global --add safe.directory "$(pwd)"
|
||||
|
||||
echo "looking for change log"
|
||||
|
||||
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\)$'
|
||||
ret=$?
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue