diff --git a/.ci/gen_output.sh b/.ci/gen_output.sh
new file mode 100755
index 0000000..7c7662c
--- /dev/null
+++ b/.ci/gen_output.sh
@@ -0,0 +1,28 @@
+echo "\`\`\`" > output.txt
+
+process_output() {
+ if [ $? -eq 0 ]; then
+ head -n 5 output_tmp.txt >> output.txt
+ echo "... [See pipeline output for full details]" >> output.txt
+ tail -n 5 output_tmp.txt >> output.txt
+ else
+ cat output_tmp.txt >> output.txt
+ fi
+}
+
+echo "-- START Port attribution watcher --" | tee -a output.txt
+python3 .ci/port_attribution_watcher.py | tee output_tmp.txt
+
+process_output
+
+echo "-- END Port attribution watcher --" | tee -a output.txt
+echo "" >> output.txt
+echo "-- START Traefik label watcher --" | tee -a output.txt
+
+python3 .ci/traefik_label_watcher.py | tee output_tmp.txt
+
+process_output
+
+echo "-- END Traefik label watcher --" | tee -a output.txt
+echo "\`\`\`" >> output.txt # Close the code block
+
diff --git a/.ci/lint_wrap.sh b/.ci/lint_wrap.sh
new file mode 100755
index 0000000..20a6432
--- /dev/null
+++ b/.ci/lint_wrap.sh
@@ -0,0 +1,11 @@
+set -o pipefail
+sh .ci/lint.sh 2>&1 | tee output_tmp.txt
+EXIT_CODE=$?
+echo "\`\`\`" > output.txt
+
+grep -n 'msg=' output_tmp.txt | awk -F'msg="' '{print $2}' | sed 's/"$//' | sed 's/\\"/"/g' >> output.txt
+grep -v 'msg=' output_tmp.txt >> output.txt
+
+echo "\`\`\`" >> output.txt
+echo "END"
+exit $EXIT_CODE
diff --git a/.ci/port_attribution_watcher.py b/.ci/port_attribution_watcher.py
index 8432fc9..d5e2ffa 100644
--- a/.ci/port_attribution_watcher.py
+++ b/.ci/port_attribution_watcher.py
@@ -52,25 +52,20 @@ def main(watchFolder: str):
# Get exposed ports
exposedPorts = getExposedPortsFromDockerComposeFile(dockerComposeFile)
ports[dockerComposeFile] = exposedPorts
- if len(exposedPorts) == 0:
+ if len(exposedPorts) != 0:
print(f"\nš¦ {dockerComposeFile}"
- f"\nš“ No exposed ports found"
- f"\n")
- else:
- print(f"\nš¦ {dockerComposeFile}"
- f"\nš Exposed ports: {exposedPorts}"
- f"\n")
+ f"\nš Exposed ports: {exposedPorts}")
wrong = checkPortUnique(ports)
if wrong:
exit(1)
else:
- print("\n\nā
All ports are unique\n\n")
+ print("\nā
All ports are unique")
exit(0)
if __name__ == "__main__":
- print("Traefik label watcher CI/CD")
+ print("Port Attribution Watcher")
# Read folder from env
watchFolder = os.getenv("WATCH_FOLDER")
if watchFolder == None:
diff --git a/.ci/traefik_label_watcher.py b/.ci/traefik_label_watcher.py
index dda93b0..a3e3868 100644
--- a/.ci/traefik_label_watcher.py
+++ b/.ci/traefik_label_watcher.py
@@ -85,7 +85,7 @@ def main(watchFolder: str):
if wrong:
exit(1)
else:
- print("\n\nā
All routers are unique\n\n")
+ print("\n\nā
All routers are unique")
exit(0)
if __name__ == "__main__":
diff --git a/.woodpecker/lint.yml b/.woodpecker/lint.yml
index 30f8f3a..954a40a 100644
--- a/.woodpecker/lint.yml
+++ b/.woodpecker/lint.yml
@@ -3,23 +3,36 @@ steps:
image: python:3.13-slim
commands:
- pip3 install -r .ci/requirements.txt
- - python3 .ci/port_attribution_watcher.py
- - python3 .ci/traefik_labels_watcher.py
- when:
- - event: pull_request
- repo: gnouseu/docker-services
- - event: push
- branch: main
+ - ./.ci/gen_output.sh
+ comment:
+ image: git.gnous.eu/enpls/gitea-comment-plugin:1.1
+ settings:
+ gitea_address: https://git.gnous.eu
+ gitea_token:
+ from_secret: gnous_cicd_token
+ comment_file: output.txt
+ when:
+ status: [failure, success]
+ event: [pull_request]
lint:
- image: debian:stable-slim
+ image: debian:stable
commands:
+ - rm -rf output.txt
- apt-get update
- apt-get install -y curl
- curl -SL https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
- chmod +x /usr/local/bin/docker-compose
- - sh .ci/lint.sh
- when:
- - event: pull_request
- repo: gnouseu/docker-services
- - event: push
- branch: main
\ No newline at end of file
+ - bash .ci/lint_wrap.sh
+ comment_2:
+ image: git.gnous.eu/enpls/gitea-comment-plugin:1.1
+ settings:
+ gitea_address: https://git.gnous.eu
+ gitea_token:
+ from_secret: gnous_cicd_token
+ comment_file: output.txt
+ when:
+ status: [failure, success]
+ event: [pull_request]
+when:
+ - event: [push, pull_request]
+ - evaluate: 'CI_COMMIT_AUTHOR in ["gnous-ci-bot", "mael", "ada"]'
\ No newline at end of file