From 0cf23470369f58aa31cc875b332ab247812f39a4 Mon Sep 17 00:00:00 2001 From: Timi Date: Mon, 19 Jan 2026 18:08:49 +0800 Subject: [PATCH] add CI workflow --- .gitea/workflows/ci.yml | 111 ++++++++++++++++++ pom.xml | 18 --- .../imyeyu/lang/multi/FileMultilingual.java | 3 + .../lang/multi/ResourcesMultilingual.java | 3 + 4 files changed, 117 insertions(+), 18 deletions(-) create mode 100644 .gitea/workflows/ci.yml diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml new file mode 100644 index 0000000..c964697 --- /dev/null +++ b/.gitea/workflows/ci.yml @@ -0,0 +1,111 @@ +name: CI/CD + +on: + pull_request: + branches: + - master + types: + - closed + +jobs: + build-deploy: + runs-on: act_runner_java + if: ${{ github.event.pull_request.merged == true }} + env: + JAVA_HOME: /usr/lib/jvm/java-21-openjdk + steps: + - name: Checkout code + run: | + git clone ${{ github.server_url }}/${{ github.repository }}.git . + git checkout ${{ github.sha }} + - name: Set up environment + run: | + echo "PR #${{ github.event.number }} merged into master" + echo "Source branch: ${{ github.event.pull_request.head.ref }}" + echo "Target branch: ${{ github.event.pull_request.base.ref }}" + - name: Run tests + run: | + echo "Running test suite..." + - name: Build project + run: | + mvn -B -DskipTests clean package source:jar javadoc:jar + - name: Deploy to Nexus + if: success() + run: | + if [ -z "${{ secrets.NEXUS_USERNAME }}" ] || [ -z "${{ secrets.NEXUS_PASSWORD }}" ]; then + echo "Missing secrets.NEXUS_USERNAME or secrets.NEXUS_PASSWORD" + exit 1 + fi + mkdir -p ~/.m2 + cat > ~/.m2/settings.xml < + + + timi-nexus + ${{ secrets.NEXUS_USERNAME }} + ${{ secrets.NEXUS_PASSWORD }} + + + + EOF + version=$(mvn -q -DforceStdout help:evaluate -Dexpression=project.version) + artifact_id=$(mvn -q -DforceStdout help:evaluate -Dexpression=project.artifactId) + main_jar="target/${artifact_id}-${version}.jar" + sources_jar="target/${artifact_id}-${version}-sources.jar" + javadoc_jar="target/${artifact_id}-${version}-javadoc.jar" + if [ ! -f "$main_jar" ] || [ ! -f "$sources_jar" ] || [ ! -f "$javadoc_jar" ]; then + echo "Missing build artifacts in target" + exit 1 + fi + mvn -B deploy:deploy-file \ + -Dfile="$main_jar" \ + -Dsources="$sources_jar" \ + -Djavadoc="$javadoc_jar" \ + -DpomFile="./pom.xml" \ + -Durl="https://nexus.imyeyu.com/repository/maven-releases/" \ + -DrepositoryId="timi-nexus" \ + -Dhttps.protocols=TLSv1.2 \ + -Djdk.tls.client.protocols=TLSv1.2 + - name: Create release + if: ${{ success() && startsWith(github.event.pull_request.title, 'v') }} + env: + GITEA_TOKEN: ${{ secrets.RUNNER_TOKEN }} + GITEA_SERVER_URL: ${{ github.server_url }} + GITEA_REPOSITORY: ${{ github.repository }} + RELEASE_TAG: ${{ github.event.pull_request.title }} + RELEASE_TARGET: ${{ github.sha }} + run: | + if [ -z "$GITEA_TOKEN" ]; then + echo "Missing secrets.RUNNER_TOKEN" + exit 1 + fi + api_url="$GITEA_SERVER_URL/api/v1/repos/$GITEA_REPOSITORY/releases" + payload=$(cat <org.apache.maven.plugins maven-source-plugin 3.3.1 - - - attach-sources - package - - jar-no-fork - - - org.apache.maven.plugins maven-javadoc-plugin 3.11.2 - - - attach-javadocs - package - - jar - - - diff --git a/src/main/java/com/imyeyu/lang/multi/FileMultilingual.java b/src/main/java/com/imyeyu/lang/multi/FileMultilingual.java index 486a9c1..45b3940 100644 --- a/src/main/java/com/imyeyu/lang/multi/FileMultilingual.java +++ b/src/main/java/com/imyeyu/lang/multi/FileMultilingual.java @@ -13,6 +13,9 @@ import com.imyeyu.lang.mapper.LanguageMap; */ public class FileMultilingual extends Multilingual { + public FileMultilingual() { + } + /** * 构造并批量加载所有支持的语言文件 * diff --git a/src/main/java/com/imyeyu/lang/multi/ResourcesMultilingual.java b/src/main/java/com/imyeyu/lang/multi/ResourcesMultilingual.java index 60273c5..b26ce6d 100644 --- a/src/main/java/com/imyeyu/lang/multi/ResourcesMultilingual.java +++ b/src/main/java/com/imyeyu/lang/multi/ResourcesMultilingual.java @@ -16,6 +16,9 @@ import com.imyeyu.lang.mapper.ResourcesLanguageMap; */ public class ResourcesMultilingual extends Multilingual { + public ResourcesMultilingual() { + } + /** * 构造并批量加载所有支持的语言资源文件 * -- 2.49.0