From f68327b857b89a197b4729911abb0e798b03e6a8 Mon Sep 17 00:00:00 2001 From: PIGCLOUD Date: Thu, 30 Apr 2026 16:06:54 +0800 Subject: [PATCH] ci: configure build and dependency automation --- .github/dependabot.yml | 60 ++++++++++++++++++++++++++++++++ .github/workflows/ci.yml | 74 ++++++++++++++++++++++++++++++++++++++++ .gitignore | 4 ++- .gogs/ISSUE_TEMPLATE.md | 23 +++++++++++++ docker-compose-boot.yml | 41 ++++++++++++++++++++++ docker-compose.yml | 2 +- 6 files changed, 202 insertions(+), 2 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/ci.yml create mode 100644 .gogs/ISSUE_TEMPLATE.md create mode 100644 docker-compose-boot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..f93197fe8 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,60 @@ +version: 2 +updates: + - package-ecosystem: maven + directory: / + schedule: + interval: weekly + day: monday + time: "09:00" + timezone: Asia/Shanghai + open-pull-requests-limit: 5 + # 默认只自动处理 Maven patch 升级;LangChain4j 小版本升级也交给 Dependabot 自动建 PR。 + allow: + - dependency-name: "*" + update-types: + - version-update:semver-patch + - dependency-name: "dev.langchain4j:*" + update-types: + - version-update:semver-minor + ignore: + # major 升级涉及迁移风险,仍保留人工评估。 + - dependency-name: "*" + update-types: + - version-update:semver-major + commit-message: + prefix: chore(deps) + groups: + # LangChain4j 单独分组,避免与普通 Maven patch 升级混在一个 PR。 + langchain4j: + patterns: + - "dev.langchain4j:*" + update-types: + - patch + - minor + maven-dependencies: + patterns: + - "*" + exclude-patterns: + - "dev.langchain4j:*" + update-types: + - patch + + - package-ecosystem: github-actions + directory: / + schedule: + interval: weekly + day: monday + time: "09:30" + timezone: Asia/Shanghai + open-pull-requests-limit: 3 + ignore: + - dependency-name: "*" + update-types: + - version-update:semver-minor + - version-update:semver-major + commit-message: + prefix: ci(deps) + groups: + github-actions: + patterns: + - "*" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..80c723208 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,74 @@ +name: CI + +on: + workflow_dispatch: + push: + pull_request: + +permissions: + contents: read + +jobs: + maven-build: + name: Maven build (Java ${{ matrix.java-version }}) + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + java-version: ['17', '25'] + + steps: + - name: Checkout + uses: actions/checkout@v5 + + - name: Set up JDK ${{ matrix.java-version }} + uses: actions/setup-java@v5 + with: + distribution: temurin + java-version: ${{ matrix.java-version }} + cache: maven + + - name: Add JDK 25 annotation processor profile + if: matrix.java-version == '25' + run: | + python - <<'PY' + from pathlib import Path + + pom = Path('pom.xml') + content = pom.read_text() + profile = '''\ + + jdk25-annotation-processor + + [25,) + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + org.projectlombok + lombok + + + + + + + + ''' + + marker = ' ' + if marker not in content: + raise SystemExit('Cannot find root pom.xml profiles section.') + if 'jdk25-annotation-processor' not in content: + content = content.replace(marker, profile + marker, 1) + pom.write_text(content) + PY + + - name: Build with Maven + run: mvn -B -ntp clean install diff --git a/.gitignore b/.gitignore index 5cc135113..3037417ac 100644 --- a/.gitignore +++ b/.gitignore @@ -66,6 +66,8 @@ node_modules ### claude code ### .claude docs +docs/plans/ ### test -aitest \ No newline at end of file +aitest +.vectorex \ No newline at end of file diff --git a/.gogs/ISSUE_TEMPLATE.md b/.gogs/ISSUE_TEMPLATE.md new file mode 100644 index 000000000..0d8abed7f --- /dev/null +++ b/.gogs/ISSUE_TEMPLATE.md @@ -0,0 +1,23 @@ +- 提问务必按以下模板,提交详细信息。 + +- 错误信息多多益善、错误截图多多益善。 + +--- +--- + +### 环境信息 +- pigx版本: + +- 是否修改包名: + +### 提供详细日志、截图、回显步骤 + + + + + + + + + + diff --git a/docker-compose-boot.yml b/docker-compose-boot.yml new file mode 100644 index 000000000..7403eefbd --- /dev/null +++ b/docker-compose-boot.yml @@ -0,0 +1,41 @@ +# 使用说明 V6.0 - 单体架构版本 +# 1. 先构建单体 JAR: mvn clean install -Pboot -DskipTests +# 2. 启动服务: docker compose -f docker-compose-boot.yml up -d +# 3. 静静等待服务启动 +services: + pigx-mysql: + build: + context: ./db + environment: + MYSQL_ROOT_HOST: "%" + MYSQL_ROOT_PASSWORD: root + restart: always + container_name: pigx-mysql + image: pigx-mysql + command: --lower_case_table_names=1 + networks: + - spring_cloud_default + + pigx-redis: + container_name: pigx-redis + image: registry.cn-hangzhou.aliyuncs.com/dockerhub_mirror/redis + restart: always + networks: + - spring_cloud_default + + # 单体的时候注意,服务名称命名为 pigx-gateway 对应前端nginx 配置 + pigx-gateway: + build: + context: ./pigx-boot + restart: always + container_name: pigx-boot + image: pigx-boot + ports: + - 9999:9999 + networks: + - spring_cloud_default + +networks: + spring_cloud_default: + name: spring_cloud_default + driver: bridge diff --git a/docker-compose.yml b/docker-compose.yml index d3acf7b0b..37783f6b8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -# 使用说明 V5.11 - 微服务架构版本 +# 使用说明 V6.0 - 微服务架构版本 # 1. 使用docker-compose 宿主机不需要配置host来发现 # 2. 无需修改源码,根目录 docker-compose up 即可 # 3. 静静等待服务启动