diff --git a/.dockerignore b/.dockerignore
index 0a69d16..c33348a 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,5 +1,5 @@
.git
-.gitlab-ci.yml
+.gitea
.idea
.mvn
src
diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml
new file mode 100644
index 0000000..0bb9806
--- /dev/null
+++ b/.gitea/workflows/ci.yml
@@ -0,0 +1,201 @@
+name: CI
+
+on:
+ push:
+ branches:
+ - "main"
+ tags:
+ - 'v*'
+ pull_request:
+ branches:
+ - "main"
+
+env:
+ MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=${{ github.workspace }}/.m2/repository -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
+ MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version --no-transfer-progress -DinstallAtEnd=true -DdeployAtEnd=true"
+ # Docker image name; expects REGISTRY_URL like registry.example.com
+ CI_REGISTRY_IMAGE: "${{ secrets.REGISTRY_URL }}/${{ github.repository }}"
+
+jobs:
+ compile:
+ name: Compile
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+
+ - name: Set up JDK
+ uses: actions/setup-java@v5
+ with:
+ distribution: 'temurin'
+ java-version: '25'
+ cache: 'maven'
+
+ - name: Cache Maven local repo and wrapper
+ uses: actions/cache@v5
+ with:
+ path: |
+ ~/.m2/repository
+ .mvn
+ key: m2-${{ runner.os }}-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ m2-${{ runner.os }}-
+
+ - name: Compile
+ run: |
+ chmod +x ./mvnw
+ ./mvnw $MAVEN_CLI_OPTS compile
+
+ test:
+ name: Test
+ runs-on: ubuntu-latest
+ needs: compile
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+
+ - name: Set up JDK
+ uses: actions/setup-java@v5
+ with:
+ distribution: 'temurin'
+ java-version: '25'
+ cache: 'maven'
+
+ - name: Cache Maven local repo and wrapper
+ uses: actions/cache@v5
+ with:
+ path: |
+ ~/.m2/repository
+ .mvn
+ key: m2-${{ runner.os }}-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ m2-${{ runner.os }}-
+
+ - name: Run tests
+ run: |
+ chmod +x ./mvnw
+ ./mvnw $MAVEN_CLI_OPTS test
+
+ - name: Upload test reports (artifact)
+ if: always()
+ uses: actions/upload-artifact@v5
+ with:
+ name: junit-reports
+ path: |
+ **/target/*-reports/TEST-*.xml
+ if-no-files-found: ignore
+
+ package:
+ name: Package
+ runs-on: ubuntu-latest
+ needs: test
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+
+ - name: Set up JDK
+ uses: actions/setup-java@v5
+ with:
+ distribution: 'temurin'
+ java-version: '25'
+ cache: 'maven'
+
+ - name: Cache Maven local repo and wrapper
+ uses: actions/cache@v5
+ with:
+ path: |
+ ~/.m2/repository
+ .mvn
+ key: m2-${{ runner.os }}-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ m2-${{ runner.os }}-
+
+ - name: Build package (skip tests)
+ run: |
+ chmod +x ./mvnw
+ ./mvnw $MAVEN_CLI_OPTS package -DskipTests=true
+
+ - name: Upload Maven artifacts
+ uses: actions/upload-artifact@v5
+ with:
+ name: maven-artifacts
+ path: |
+ target/netneutrality.jar
+ startup.sh
+ if-no-files-found: error
+
+ docker-main:
+ name: Docker Build and Push (main)
+ runs-on: ubuntu-latest
+ needs: package
+ if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
+ permissions:
+ contents: read
+ packages: write
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+
+ - name: Download build artifacts
+ uses: actions/download-artifact@v8
+ with:
+ name: maven-artifacts
+ path: .
+
+ - name: Log in to registry
+ uses: docker/login-action@v4
+ with:
+ registry: ${{ secrets.REGISTRY_URL }}
+ username: ${{ secrets.REGISTRY_USER }}
+ password: ${{ secrets.REGISTRY_PASSWORD }}
+
+ - name: Build and push (main)
+ uses: docker/build-push-action@v7
+ with:
+ context: .
+ file: ./Dockerfile
+ push: true
+ tags: "${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USER }}/netneutrality:main"
+
+ docker-release:
+ name: Docker Build and Push (release)
+ runs-on: ubuntu-latest
+ needs: package
+ if: ${{ startsWith(github.ref, 'refs/tags/') }}
+ permissions:
+ contents: read
+ packages: write
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+
+ - name: Download build artifacts
+ uses: actions/download-artifact@v8
+ with:
+ name: maven-artifacts
+ path: .
+
+ - name: Compute release version
+ id: rel
+ shell: bash
+ run: |
+ # Strip leading 'v' if present (e.g., v1.2.3 -> 1.2.3)
+ ver="${GITHUB_REF_NAME#v}"
+ echo "version=$ver" >> "$GITHUB_OUTPUT"
+
+ - name: Log in to registry
+ uses: docker/login-action@v4
+ with:
+ registry: ${{ secrets.REGISTRY_URL }}
+ username: ${{ secrets.REGISTRY_USER }}
+ password: ${{ secrets.REGISTRY_PASSWORD }}
+
+ - name: Build and push (release + latest)
+ uses: docker/build-push-action@v7
+ with:
+ context: .
+ file: ./Dockerfile
+ push: true
+ tags: |
+ ${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USER }}/netneutrality:${{ steps.rel.outputs.version }}
+ ${{ secrets.REGISTRY_URL }}/${{ secrets.REGISTRY_USER }}/netneutrality:latest
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
deleted file mode 100644
index d7db9e4..0000000
--- a/.gitlab-ci.yml
+++ /dev/null
@@ -1,101 +0,0 @@
-image: docker.io/library/eclipse-temurin:25-jdk-alpine@sha256:da683f4f02f9427597d8fa162b73b8222fe08596dcebaf23e4399576ff8b037e
-
-variables:
- MAVEN_OPTS: >-
- -Dhttps.protocols=TLSv1.2
- -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository
- -Dorg.slf4j.simpleLogger.showDateTime=true
- -Djava.awt.headless=true
-
- MAVEN_CLI_OPTS: >-
- --batch-mode
- --errors
- --fail-at-end
- --show-version
- --no-transfer-progress
- -DinstallAtEnd=true
- -DdeployAtEnd=true
-
-cache:
- key: ${CI_PROJECT_NAME}-${CI_COMMIT_REF_SLUG}
- paths:
- - .m2/repository
- - .mvn
- policy: pull-push
-
-stages:
- - compile
- - test
- - package
- - docker-build
-
-compile:
- stage: compile
- script:
- - "chmod +x ./mvnw"
- - "./mvnw $MAVEN_CLI_OPTS compile"
- rules:
- - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- - if: '$CI_COMMIT_BRANCH == "main"'
- - if: '$CI_COMMIT_TAG'
-
-test:
- stage: test
- script:
- - "chmod +x ./mvnw"
- - "./mvnw $MAVEN_CLI_OPTS test"
- artifacts:
- when: always
- reports:
- junit:
- - "**/target/*-reports/TEST-*.xml"
- codequality:
- - "target/gl-code-quality-report.json"
- rules:
- - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- - if: '$CI_COMMIT_BRANCH == "main"'
- - if: '$CI_COMMIT_TAG'
-
-package:
- stage: package
- script:
- - "chmod +x ./mvnw"
- - "./mvnw $MAVEN_CLI_OPTS package -DskipTests=true"
- artifacts:
- name: "Maven artifacts from $CI_PROJECT_NAME on $CI_COMMIT_REF_SLUG"
- paths:
- - target/netneutrality.jar
- - startup.sh
- expire_in: 1 week
- rules:
- - if: '$CI_COMMIT_BRANCH == "main"'
- - if: '$CI_COMMIT_TAG'
-
-docker-build-main:
- stage: docker-build
- image: quay.io/buildah/stable
- needs:
- - job: package
- artifacts: true
- script:
- - echo "$CI_REGISTRY_PASSWORD" | buildah login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY"
- - buildah bud -f Dockerfile -t $CI_REGISTRY_IMAGE:main .
- - buildah push $CI_REGISTRY_IMAGE:main
- rules:
- - if: '$CI_COMMIT_BRANCH == "main"'
-
-docker-build-release:
- stage: docker-build
- image: quay.io/buildah/stable
- needs:
- - job: package
- artifacts: true
- script:
- - export RELEASE_VERSION="${CI_COMMIT_TAG#v}"
- - echo "$CI_REGISTRY_PASSWORD" | buildah login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY"
- - buildah bud -f Dockerfile -t $CI_REGISTRY_IMAGE:$RELEASE_VERSION .
- - buildah push $CI_REGISTRY_IMAGE:$RELEASE_VERSION
- - buildah tag $CI_REGISTRY_IMAGE:$RELEASE_VERSION $CI_REGISTRY_IMAGE:latest
- - buildah push $CI_REGISTRY_IMAGE:latest
- rules:
- - if: '$CI_COMMIT_TAG'
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index 7f13d62..7e03638 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM docker.io/library/eclipse-temurin:25-jre@sha256:0a9c973778b03b88f39ccae4f8cc26022d84a3237a818cb98770369eb6c5daf9
+FROM eclipse-temurin:25-jre
RUN apt-get update && apt-get install -y --no-install-recommends netcat-openbsd curl && rm -rf /var/lib/apt/lists/*
diff --git a/docker-compose.yml b/docker-compose.yml
index 40f7a93..1deb98a 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -15,7 +15,7 @@ services:
- MARIADB_AUTO_UPGRADE=1
netneutrality-bot:
- image: registry.bobert.me/anthorob/netneutrality:${NETNEUTRALITY_TAG:-latest}
+ image: gitea.bobert.me/anthorob/netneutrality:${NETNEUTRALITY_TAG:-latest}
container_name: bot
restart: unless-stopped
env_file: .env
diff --git a/pom.xml b/pom.xml
index 1cfc819..5e39bb9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -119,20 +119,6 @@
xml
-
-
- de.chkal.maven
- gitlab-code-quality-plugin
- 1.1.0
-
-
- test
-
- generate
-
-
-
-