Compare commits
21 Commits
v0.4.0
..
2c233437da
| Author | SHA1 | Date | |
|---|---|---|---|
| 2c233437da | |||
| 84c5295345 | |||
| 6d139329f1 | |||
| b5caee443e | |||
| 053979d4e1 | |||
| d57da1e60f | |||
| 3613df6974 | |||
| 0acf0d0834 | |||
| 5ed9da4036 | |||
| 84a37b8a8d | |||
| c292c27444 | |||
| 744abd47ff | |||
| 9f301337b6 | |||
| 0a401b164c | |||
| 7b08820d1a | |||
| 83995ba5fa | |||
| d586567fd6 | |||
| 3505aee124 | |||
| ee3dcda8ea | |||
| c01946fc05 | |||
| 09cb00db19 |
@@ -1,13 +1,9 @@
|
||||
name: Publish JUnit Report (Short Names)
|
||||
description: Normalize JUnit XML report names and publish a summary-only test report.
|
||||
description: Normalize JUnit XML report names and publish a test report to the repo.
|
||||
inputs:
|
||||
token:
|
||||
description: GitHub token for creating the check run.
|
||||
description: Gitea token with write access to the repository.
|
||||
required: true
|
||||
report-name:
|
||||
description: Name shown for the test report.
|
||||
required: false
|
||||
default: Summary of JUnit Tests
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
@@ -20,16 +16,70 @@ runs:
|
||||
for f in **/target/*-reports/TEST-*.xml; do
|
||||
base="$(basename "$f")"
|
||||
short="${base#TEST-}"
|
||||
short="${short%.xml}"
|
||||
cp "$f" "junit-short/${short}"
|
||||
done
|
||||
|
||||
- name: Publish Test Report
|
||||
uses: dorny/test-reporter@v2
|
||||
with:
|
||||
token: ${{ inputs.token }}
|
||||
name: ${{ inputs.report-name }}
|
||||
path: "*"
|
||||
reporter: java-junit
|
||||
only-summary: true
|
||||
working-directory: "junit-short"
|
||||
- name: Generate Markdown Report
|
||||
shell: bash
|
||||
run: |
|
||||
mkdir -p reports
|
||||
python3 - <<'EOF'
|
||||
import glob, xml.etree.ElementTree as ET
|
||||
|
||||
files = glob.glob("junit-short/*.xml")
|
||||
total_tests = total_failures = total_errors = total_skipped = 0
|
||||
rows = []
|
||||
|
||||
for f in sorted(files):
|
||||
tree = ET.parse(f)
|
||||
r = tree.getroot()
|
||||
suites = r.findall("testsuite") if r.tag == "testsuites" else [r]
|
||||
for ts in suites:
|
||||
name = ts.get("name", f)
|
||||
tests = int(ts.get("tests", 0))
|
||||
failures = int(ts.get("failures", 0))
|
||||
errors = int(ts.get("errors", 0))
|
||||
skipped = int(ts.get("skipped", 0))
|
||||
passed = tests - failures - errors - skipped
|
||||
status = "✅" if (failures + errors) == 0 else "❌"
|
||||
total_tests += tests
|
||||
total_failures += failures
|
||||
total_errors += errors
|
||||
total_skipped += skipped
|
||||
rows.append(f"| {status} | {name} | {tests} | {passed} | {failures + errors} | {skipped} |")
|
||||
|
||||
total_passed = total_tests - total_failures - total_errors - total_skipped
|
||||
overall = "✅ All tests passed" if (total_failures + total_errors) == 0 else "❌ Some tests failed"
|
||||
|
||||
md = (
|
||||
"# Test Report\n\n"
|
||||
f"**{overall}**\n\n"
|
||||
"| | Tests | Passed | Failed | Skipped |\n"
|
||||
"|---|---|---|---|---|\n"
|
||||
f"| **Total** | {total_tests} | {total_passed} | {total_failures + total_errors} | {total_skipped} |\n\n"
|
||||
"## Details\n\n"
|
||||
"| Status | Suite | Tests | Passed | Failed | Skipped |\n"
|
||||
"|---|---|---|---|---|---|\n"
|
||||
) + "\n".join(rows) + "\n"
|
||||
|
||||
with open("reports/index.md", "w") as out:
|
||||
out.write(md)
|
||||
print(md)
|
||||
EOF
|
||||
|
||||
- name: Commit Report to Repo
|
||||
shell: bash
|
||||
env:
|
||||
GIT_USER: gitea-actions-bot
|
||||
GIT_EMAIL: bot@mein-gateway.de
|
||||
GITEA_TOKEN: ${{ inputs.token }}
|
||||
run: |
|
||||
git config user.name "$GIT_USER"
|
||||
git config user.email "$GIT_EMAIL"
|
||||
git remote set-url origin https://$GIT_USER:$GITEA_TOKEN@git.mein-gateway.de/${{ github.repository }}.git
|
||||
git fetch origin
|
||||
git checkout ${{ github.ref_name }}
|
||||
git add reports/
|
||||
git diff --cached --quiet && echo "No changes" && exit 0
|
||||
git commit -m "ci: update test report [skip ci]"
|
||||
git push origin ${{ github.ref_name }}
|
||||
@@ -1,6 +1,6 @@
|
||||
name: "Setup Maven with GitHub Packages"
|
||||
|
||||
description: "Sets up JDK, caches Maven dependencies, and configures GitHub Packages for Maven repositories."
|
||||
description: "Sets up JDK and caches Maven dependencies."
|
||||
|
||||
inputs:
|
||||
java-version:
|
||||
@@ -15,15 +15,7 @@ runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Set up JDK
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: ${{ inputs.java-distribution }}
|
||||
java-version: ${{ inputs.java-version }}
|
||||
|
||||
- name: Cache Maven Repository
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.m2/repository
|
||||
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-maven-
|
||||
uses: actions/setup-java@v5
|
||||
|
||||
@@ -17,21 +17,15 @@ jobs:
|
||||
build-and-analyse:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
|
||||
|
||||
- name: Setup Java and Maven
|
||||
uses: ./.github/actions/setup-java-maven
|
||||
|
||||
- name: Build and analyze with SonarCloud
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||
CF_API_TOKEN: ${{ secrets.API_TOKEN }}
|
||||
run: |
|
||||
echo "Running SonarCloud analysis..."
|
||||
mvn -B -DtestClasspath=src/test/ verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=th-schwarz_CloudflareDNS-java
|
||||
- name: Build and test
|
||||
run: mvn -B verify
|
||||
|
||||
- name: Publish Test Report
|
||||
uses: ./.github/actions/publish-report/
|
||||
|
||||
@@ -1,22 +1,12 @@
|
||||
# CloudflareDNS-java
|
||||
|
||||
[](https://ci.codeberg.org/repos/16522)
|
||||
|
||||
[](https://sonarcloud.io/summary/new_code?id=th-schwarz_CloudflareDNS-java)
|
||||
[](https://sonarcloud.io/summary/new_code?id=th-schwarz_CloudflareDNS-java)
|
||||
[](https://sonarcloud.io/summary/new_code?id=th-schwarz_CloudflareDNS-java)
|
||||
[](https://sonarcloud.io/summary/new_code?id=th-schwarz_CloudflareDNS-java)
|
||||
[](https://sonarcloud.io/summary/new_code?id=th-schwarz_CloudflareDNS-java)
|
||||
|
||||
[](https://codeberg.org/th-schwarz/CloudflareDNS-java)
|
||||
|
||||
## Preface
|
||||
|
||||
This project provides a java client for minimalistic access to the Cloudflare API version 4, which is mainly used for
|
||||
managing DNS settings such as creating, updating and deleting DNS records.
|
||||
|
||||
If you encounter any bugs or find missing features, feel free to report them on
|
||||
the [Codeberg Issues page](https://codeberg.org/th-schwarz/CloudflareDNS-java/issues).
|
||||
the [Gitea Issues page](https://git.mein-gateway.de/thischwa/CloudflareDNS-java/issues).
|
||||
|
||||
---
|
||||
|
||||
@@ -28,29 +18,12 @@ This guide comes without any warranty. Use at your own risk. The author is not r
|
||||
|
||||
## Get It
|
||||
|
||||
The project has its own maven repository. It can be added to the `pom.xml`:
|
||||
|
||||
```xml
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>gitea</id>
|
||||
<url>https://codeberg.org/api/packages/th-schwarz/maven</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
```
|
||||
|
||||
The dependency is:
|
||||
```xml
|
||||
<dependency>
|
||||
<groupId>codes.thischwa</groupId>
|
||||
<artifactId>cloudflaredns</artifactId>
|
||||
<version>[version]</version>
|
||||
</dependency>
|
||||
```
|
||||
The project has its own maven repository. Follow the instructions on the latest [package](https://git.mein-gateway.de/thischwa/-/packages) to add the repository to your project.
|
||||
|
||||
## Changelog
|
||||
|
||||
- 0.4.0-SNAPSHOT:
|
||||
- 0.4.0:
|
||||
- fixed some paging issues
|
||||
- **Breaking Change**: renamed `client.zone().record()` to `client.zone().getRecord()`
|
||||
- Code quality improvements: Increasing test coverage
|
||||
- 0.3.0:
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
|
||||
<groupId>codes.thischwa</groupId>
|
||||
<artifactId>cloudflaredns</artifactId>
|
||||
<version>0.4.0</version>
|
||||
<version>0.5.0-SNAPSHOT</version>
|
||||
<name>CloudflareDNS-java</name>
|
||||
<inceptionYear>2025</inceptionYear>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<issueManagement>
|
||||
<url>https://codeberg.org/th-schwarz/CloudflareDNS-java/issues</url>
|
||||
<system>Codeberg Issues</system>
|
||||
<url>https://git.mein-gateway.de/thischwa/CloudflareDNS-java/issues</url>
|
||||
<system>Gitea Issues</system>
|
||||
</issueManagement>
|
||||
|
||||
<properties>
|
||||
@@ -42,36 +42,27 @@
|
||||
<junit5.version>5.14.2</junit5.version>
|
||||
<mockito-junit5.version>5.21.0</mockito-junit5.version>
|
||||
|
||||
<!-- sonarqube -->
|
||||
<sonar.organization>th-schwarz</sonar.organization>
|
||||
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
|
||||
<sonar.sourceEncoding>${file.encoding}</sonar.sourceEncoding>
|
||||
<sonar.projectKey>th-schwarz_CloudflareDNS-java</sonar.projectKey>
|
||||
<sonar.projectName>CloudflareDNS-java</sonar.projectName>
|
||||
<sonar.branch.name>develop</sonar.branch.name>
|
||||
<sonar.test.exclusions>src/test/java/**/*</sonar.test.exclusions>
|
||||
|
||||
<lombok-maven-plugin.version>1.18.20.0</lombok-maven-plugin.version>
|
||||
</properties>
|
||||
|
||||
<scm>
|
||||
<developerConnection>scm:git:git@codeberg.org:th-schwarz/CloudflareDNS-java.git</developerConnection>
|
||||
<connection>scm:git:git@codeberg.org:th-schwarz/CloudflareDNS-java.git</connection>
|
||||
<url>https://codeberg.org/th-schwarz/CloudflareDNS-java</url>
|
||||
<tag>v0.4.0</tag>
|
||||
<developerConnection>scm:git:https://git.mein-gateway.de/thischwa/CloudflareDNS-java.git</developerConnection>
|
||||
<connection>scm:git:https://git.mein-gateway.de/thischwa/CloudflareDNS-java.git</connection>
|
||||
<url>https://git.mein-gateway.de/thischwa/CloudflareDNS-java</url>
|
||||
<tag>HEAD</tag>
|
||||
</scm>
|
||||
|
||||
<distributionManagement>
|
||||
<repository>
|
||||
<id>codeberg-cloudflaredns</id>
|
||||
<url>https://codeberg.org/api/packages/th-schwarz/maven</url>
|
||||
<id>mygitea</id>
|
||||
<url>https://git.mein-gateway.de/api/packages/thischwa/maven</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
</releases>
|
||||
</repository>
|
||||
<snapshotRepository>
|
||||
<id>codeberg-cloudflaredns</id>
|
||||
<url>https://codeberg.org/api/packages/th-schwarz/maven</url>
|
||||
<id>mygitea</id>
|
||||
<url>https://git.mein-gateway.de/api/packages/thischwa/maven</url>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
@@ -115,7 +106,7 @@
|
||||
<dependency>
|
||||
<groupId>org.jetbrains</groupId>
|
||||
<artifactId>annotations</artifactId>
|
||||
<version>24.0.0</version>
|
||||
<version>24.0.1</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
# Test Report
|
||||
|
||||
**✅ All tests passed**
|
||||
|
||||
| | Tests | Passed | Failed | Skipped |
|
||||
|---|---|---|---|---|
|
||||
| **Total** | 0 | 0 | 0 | 0 |
|
||||
|
||||
## Details
|
||||
|
||||
| Status | Suite | Tests | Passed | Failed | Skipped |
|
||||
|---|---|---|---|---|---|
|
||||
|
||||
Reference in New Issue
Block a user