This is an automated email from the ASF dual-hosted git repository.

reschke pushed a commit to branch 1.22
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git


The following commit(s) were added to refs/heads/1.22 by this push:
     new d56662f7b8 OAK-12001: CI for 1.22 (#2750)
d56662f7b8 is described below

commit d56662f7b8b7c17d193e5536e4e5a21dfdd8f0ce
Author: Julian Reschke <[email protected]>
AuthorDate: Thu Feb 19 10:23:47 2026 +0100

    OAK-12001: CI for 1.22 (#2750)
---
 .github/workflows/build.yml        | 100 +++++++++++++++++++++++++++++++++++++
 .github/workflows/commit-check.yml |  49 ++++++++++++++++++
 .github/workflows/stale.yml        |  31 ++++++++++++
 3 files changed, 180 insertions(+)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000000..31f21c2215
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,100 @@
+#  ~ Licensed to the Apache Software Foundation (ASF) under one
+#  ~ or more contributor license agreements.  See the NOTICE file
+#  ~ distributed with this work for additional information
+#  ~ regarding copyright ownership.  The ASF licenses this file
+#  ~ to you under the Apache License, Version 2.0 (the
+#  ~ "License"); you may not use this file except in compliance
+#  ~ with the License.  You may obtain a copy of the License at
+#  ~
+#  ~   http://www.apache.org/licenses/LICENSE-2.0
+#  ~
+#  ~ Unless required by applicable law or agreed to in writing,
+#  ~ software distributed under the License is distributed on an
+#  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  ~ KIND, either express or implied.  See the License for the
+#  ~ specific language governing permissions and limitations
+#  ~ under the License.
+
+name: Build
+on:
+  push:
+    branches:
+      - 1.22
+  pull_request:
+    types: [opened, synchronize, reopened]
+jobs:
+  build:
+    name: Maven Build
+    runs-on: ubuntu-latest
+    steps:
+      - name: Git clone
+        uses: actions/checkout@v4
+      - name: Set up JDK 11
+        uses: actions/setup-java@v4
+        with:
+          java-version: 11
+          distribution: temurin
+          cache: maven
+          server-id: apache.snapshots.https # Value of the 
distributionManagement/repository/id field of the pom.xml
+          server-username: MAVEN_APACHE_NEXUS_USERNAME # env variable for 
username in deploy
+          server-password: MAVEN_APACHE_NEXUS_PASSWORD # env variable for 
token in deploy
+      # sets environment variables to be used in subsequent steps: 
https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable
+      - name: Set environment variables
+        shell: bash
+        run: |
+          if [ "${{github.ref}}" = "refs/heads/1.22" ] && [ 
"${{github.event_name}}" = "push" ] && [ "${{github.repository_owner}}" = 
"apache" ]; then
+            echo 'Running on main branch of the canonical repo'
+            echo "MVN_ADDITIONAL_OPTS=-DdeployAtEnd=true" >> $GITHUB_ENV
+            echo "MVN_GOAL=deploy" >> $GITHUB_ENV
+            echo "MAVEN_APACHE_NEXUS_USERNAME=${{ secrets.NEXUS_USER }}" >> 
$GITHUB_ENV
+            echo "MAVEN_APACHE_NEXUS_PASSWORD=${{ secrets.NEXUS_PW }}" >> 
$GITHUB_ENV
+          else
+            echo 'Running outside main branch/canonical repo'
+            echo "MVN_ADDITIONAL_OPTS=-Dskip.coverage=true" >> $GITHUB_ENV
+            echo "MVN_GOAL=install" >> $GITHUB_ENV
+          fi
+      - name: Build
+        # executing ITs requires installing artifacts to the local repository
+        run: mvn -B ${{ env.MVN_GOAL }} ${{ env.MVN_ADDITIONAL_OPTS }} 
-PintegrationTesting,javadoc -Dnsfixtures=SEGMENT_TAR,DOCUMENT_NS
+      - name: Upload build result
+        uses: actions/upload-artifact@v4
+        with:
+          name: compiled-classes-and-coverage
+          # compare with 
https://docs.sonarsource.com/sonarqube-cloud/advanced-setup/languages/java/#java-analysis-and-bytecode
+          path: |
+             **/target/**/*.class
+             **/target/site/jacoco*/*.xml
+  
+  # execute analysis in a separate job for better visualization and usage of 
matrix builds
+  # 
https://docs.sonarsource.com/sonarcloud/advanced-setup/ci-based-analysis/sonarscanner-for-maven/#invoking-the-goal
+  sonar:
+    name: SonarQube Analysis
+    runs-on: ubuntu-latest
+    needs: build
+    # not supported on forks, 
https://portal.productboard.com/sonarsource/1-sonarqube-cloud/c/50-sonarcloud-analyzes-external-pull-request
+    if: ${{ github.repository == 'apache/jackrabbit-oak'  }}
+    steps: 
+      - uses: actions/checkout@v4
+        with:
+          fetch-depth: 0  # Shallow clones should be disabled for a better 
relevancy of analysis
+      - name: Set up JDK 17
+        uses: actions/setup-java@v4
+        with:
+          java-version: 17
+          distribution: temurin
+          cache: maven
+      - name: Download compiled classes
+        uses: actions/download-artifact@v4
+        with:
+          name: compiled-classes-and-coverage
+      - name: Cache SonarQube packages
+        uses: actions/cache@v4
+        with:
+          path: ~/.sonar/cache
+          key: ${{ runner.os }}-sonar
+          restore-keys: ${{ runner.os }}-sonar
+      - name: Analyze with SonarQube
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}  # Needed to get PR 
information, if any
+          SONAR_TOKEN: ${{ secrets.SONARCLOUD_TOKEN }}
+        run: mvn -B 
org.sonarsource.scanner.maven:sonar-maven-plugin:5.0.0.4389:sonar 
-Dsonar.projectKey=org.apache.jackrabbit:jackrabbit-oak 
-Dsonar.organization=apache -Dsonar.scanner.skipJreProvisioning=true
diff --git a/.github/workflows/commit-check.yml 
b/.github/workflows/commit-check.yml
new file mode 100644
index 0000000000..1274e20d90
--- /dev/null
+++ b/.github/workflows/commit-check.yml
@@ -0,0 +1,49 @@
+#  ~ Licensed to the Apache Software Foundation (ASF) under one
+#  ~ or more contributor license agreements.  See the NOTICE file
+#  ~ distributed with this work for additional information
+#  ~ regarding copyright ownership.  The ASF licenses this file
+#  ~ to you under the Apache License, Version 2.0 (the
+#  ~ "License"); you may not use this file except in compliance
+#  ~ with the License.  You may obtain a copy of the License at
+#  ~
+#  ~   http://www.apache.org/licenses/LICENSE-2.0
+#  ~
+#  ~ Unless required by applicable law or agreed to in writing,
+#  ~ software distributed under the License is distributed on an
+#  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  ~ KIND, either express or implied.  See the License for the
+#  ~ specific language governing permissions and limitations
+#  ~ under the License.
+
+name: Commit Check
+
+on:
+  pull_request:
+    branches: 'trunk'
+
+jobs:
+  commit-check:
+    runs-on: ubuntu-latest
+    permissions:  # use permissions because of use pr-comments
+      contents: read
+      pull-requests: write
+    steps:
+      - uses: actions/checkout@v4
+        with:
+          ref: ${{ github.event.pull_request.head.sha }}  # checkout PR HEAD 
commit
+          fetch-depth: 0  # required for merge-base check
+      # https://github.com/commit-check
+      # must be pinned due to 
https://infra.apache.org/github-actions-policy.html
+      - uses: 
commit-check/commit-check-action@8d507e12899a9feb405c3ed546252ff9508724e0
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # use GITHUB_TOKEN because 
of use pr-comments
+        with:
+          # check commit message formatting convention
+          message: true
+          branch: true
+          author-name: true
+          author-email: true
+          commit-signoff: false
+          merge-base: false
+          job-summary: true
+          pr-comments: ${{ github.event_name == 'pull_request' }}
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
new file mode 100644
index 0000000000..68925cd7f6
--- /dev/null
+++ b/.github/workflows/stale.yml
@@ -0,0 +1,31 @@
+#  ~ Licensed to the Apache Software Foundation (ASF) under one
+#  ~ or more contributor license agreements.  See the NOTICE file
+#  ~ distributed with this work for additional information
+#  ~ regarding copyright ownership.  The ASF licenses this file
+#  ~ to you under the Apache License, Version 2.0 (the
+#  ~ "License"); you may not use this file except in compliance
+#  ~ with the License.  You may obtain a copy of the License at
+#  ~
+#  ~   http://www.apache.org/licenses/LICENSE-2.0
+#  ~
+#  ~ Unless required by applicable law or agreed to in writing,
+#  ~ software distributed under the License is distributed on an
+#  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  ~ KIND, either express or implied.  See the License for the
+#  ~ specific language governing permissions and limitations
+#  ~ under the License.
+
+name: 'Close stale PR and Issues'
+on:
+  schedule:
+    - cron: '30 1 * * *'
+
+jobs:
+  stale:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/stale@v5
+        with:
+          stale-pr-message: 'This PR is stale because it has been open 24 
months with no activity. Remove stale label or comment or this will be closed 
in 30 days.'
+          days-before-pr-stale: 730
+          days-before-pr-close: 30

Reply via email to