This is an automated email from the ASF dual-hosted git repository.
jbonofre pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/karaf.git
The following commit(s) were added to refs/heads/main by this push:
new 1d1a601b5b Move to GitHub resources: (#1965)
1d1a601b5b is described below
commit 1d1a601b5b16060a6d9f73f67b20bf61c4898c7d
Author: JB Onofré <[email protected]>
AuthorDate: Fri Aug 22 07:38:31 2025 +0200
Move to GitHub resources: (#1965)
- enable GitHub Issues
- replace Jenkins by GitHub Action
---
.asf.yaml | 39 ++++++++-
.github/dependabot.yml | 36 ++++++++
.github/workflows/build.yml | 46 ++++++++++
Jenkinsfile | 200 --------------------------------------------
4 files changed, 119 insertions(+), 202 deletions(-)
diff --git a/.asf.yaml b/.asf.yaml
index d0cb88776d..9694735b6d 100644
--- a/.asf.yaml
+++ b/.asf.yaml
@@ -15,8 +15,43 @@
# limitations under the License.
#
-notifications:
- pullrequests: [email protected]
github:
+ description: "Apache Karaf, the enterprise modulith runtime"
+ homepage: https://karaf.apache.org
+ labels:
+ - apache
+ - karaf
+ - osgi
+ - modulith
+
+ enabled_merge_buttons:
+ merge: false
+ rebase: false
+ squash: true
+
+ del_branch_on_merge: true
+
+ protected_branches:
+ main:
+ required_pull_request_reviews:
+ require_code_owner_reviews: false
+ required_approving_review_count: 0
+ required_linear_history: true
+ required_status_checks:
+ strict: false
+ contexts:
+ - build
+
+ features:
+ wiki: false
+ issues: true
+ projects: true
+
autolink_jira:
- KARAF
+
+notifications:
+ commits: [email protected]
+ issues: [email protected]
+ pullrequests: [email protected]
+ jira_options: link label
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000000..686695e99a
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,36 @@
+#
+# 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.
+#
+
+version: 2
+updates:
+ - package-ecosystem: "github-actions"
+ directory: "/"
+ schedule:
+ interval: "daily"
+ ignore:
+ - dependency-name: "*"
+ update-types: ["version-update:semver-major"]
+ - package-ecosystem: "maven"
+ directory: "/"
+ schedule:
+ interval: "daily"
+ open-pull-requests-limit: 50
+ ignore:
+ - dependency-name: "*"
+ update-types: ["version-update:semver-major"]
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000000..5f345b0573
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,46 @@
+#
+# 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: [ "main" ]
+ pull_request:
+ branches: [ "main" ]
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Set up JDK 11
+ uses: actions/setup-java@v4
+ with:
+ java-version: '11'
+ distribution: 'temurin'
+ architecture: 'x64'
+ - name: Building
+ run: mvn -U -B -e clean install -DskipTests -Prat
+ - name: Tests
+ run: mvn -B -fae -e test
diff --git a/Jenkinsfile b/Jenkinsfile
deleted file mode 100644
index 7a4cfd09f7..0000000000
--- a/Jenkinsfile
+++ /dev/null
@@ -1,200 +0,0 @@
-#!groovy
-
-/*
- *
- * 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.
- *
- */
-
-pipeline {
-
- agent {
- node {
- label 'ubuntu'
- }
- }
-
- environment {
- // ... setup any environment variables ...
- MVN_LOCAL_REPO_OPT = '-Dmaven.repo.local=.repository'
- MVN_TEST_FAIL_IGNORE = '-Dmaven.test.failure.ignore=true'
- }
-
- tools {
- // ... tell Jenkins what java version, maven version or other tools
are required ...
- maven 'maven_3_latest'
- jdk 'jdk_11_latest'
- }
-
- options {
- // Configure an overall timeout for the build of one hour.
- timeout(time: 5, unit: 'HOURS')
- // When we have test-fails e.g. we don't need to run the remaining
steps
- skipStagesAfterUnstable()
- buildDiscarder(logRotator(numToKeepStr: '5', artifactNumToKeepStr:
'5'))
- }
-
- stages {
- stage('Initialization') {
- steps {
- echo 'Building branch ' + env.BRANCH_NAME
- echo 'Using PATH ' + env.PATH
- }
- }
-
- stage('Cleanup') {
- steps {
- echo 'Cleaning up the workspace'
- deleteDir()
- }
- }
-
- stage('Checkout') {
- steps {
- echo 'Checking out branch ' + env.BRANCH_NAME
- checkout scm
- }
- }
-
- stage('Build JDK 20') {
- tools {
- jdk "jdk_20_latest"
- }
- steps {
- echo 'Building JDK 20'
- sh 'java -version'
- sh 'mvn -version'
- sh 'mvn -U -B -e clean install -DskipTests'
- }
- }
-
- stage('Build JDK 17') {
- tools {
- jdk "jdk_17_latest"
- }
- steps {
- echo 'Building JDK 17'
- sh 'java -version'
- sh 'mvn -version'
- sh 'mvn -U -B -e clean install -DskipTests'
- }
- }
-
- stage('Build JDK 11') {
- tools {
- jdk "jdk_11_latest"
- }
- steps {
- echo 'Building JDK 11'
- sh 'java -version'
- sh 'mvn -version'
- sh 'mvn -U -B -e clean install -DskipTests -Dinvoker.skip=true
-Prat'
- }
- }
-
- stage('Tests') {
- steps {
- echo 'Running tests'
- sh 'mvn -B -e -fae test -Ptest'
- }
- post {
- always {
- junit(testResults: '**/surefire-reports/*.xml',
allowEmptyResults: true)
- junit(testResults: '**/failsafe-reports/*.xml',
allowEmptyResults: true)
- }
- }
- }
-
- // stage('Code Quality') {
- // steps {
- // echo 'Checking Code Quality on SonarCloud'
- // withCredentials([string(credentialsId:
'sonarcloud-key-apache-karaf', variable: 'SONAR_TOKEN')]) {
- // sh 'mvn sonar:sonar
-Dsonar.host.url=https://sonarcloud.io -Dsonar.organization=apache
-Dsonar.projectKey=apache_karaf -Dsonar.branch.name=${BRANCH_NAME}
-Dsonar.login=${SONAR_TOKEN}'
- // }
- // }
- //}
-
- stage('Deploy') {
- when {
- expression {
- env.BRANCH_NAME ==~ /(karaf-4.3.x|karaf-4.4.x|main)/
- }
- }
- steps {
- echo 'Deploying'
- sh 'mvn -B -e deploy -Pdeploy -DskipTests'
- }
- }
- }
-
- // Do any post build stuff ... such as sending emails depending on the
overall build result.
- post {
- // If this build failed, send an email to the list.
- failure {
- script {
- if(env.BRANCH_NAME == "karaf-4.3.x" || env.BRANCH_NAME ==
"karaf-4.4.x" || env.BRANCH_NAME == "main") {
- emailext(
- subject: "[BUILD-FAILURE]: Job '${env.JOB_NAME}
[${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]'",
- body: """
-BUILD-FAILURE: Job '${env.JOB_NAME} [${env.BRANCH_NAME}]
[${env.BUILD_NUMBER}]':
-Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME}
[${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]</a>"
-""",
- to: "[email protected]",
- recipientProviders: [[$class:
'DevelopersRecipientProvider']]
- )
- }
- }
- }
-
- // If this build didn't fail, but there were failing tests, send an
email to the list.
- unstable {
- script {
- if(env.BRANCH_NAME == "karaf-4.3.x" || env.BRANCH_NAME ==
"karaf-4.4.x" || env.BRANCH_NAME == "main") {
- emailext(
- subject: "[BUILD-UNSTABLE]: Job '${env.JOB_NAME}
[${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]'",
- body: """
-BUILD-UNSTABLE: Job '${env.JOB_NAME} [${env.BRANCH_NAME}]
[${env.BUILD_NUMBER}]':
-Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME}
[${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]</a>"
-""",
- to: "[email protected]",
- recipientProviders: [[$class:
'DevelopersRecipientProvider']]
- )
- }
- }
- }
-
- // Send an email, if the last build was not successful and this one is.
- success {
- // Cleanup the build directory if the build was successful
- // (in this cae we probably don't have to do any post-build
analysis)
- deleteDir()
- script {
- if ((env.BRANCH_NAME == "karaf-4.3.x" || env.BRANCH_NAME ==
"karaf-4.4.x" || env.BRANCH_NAME == "main") && (currentBuild.previousBuild !=
null) && (currentBuild.previousBuild.result != 'SUCCESS')) {
- emailext (
- subject: "[BUILD-STABLE]: Job '${env.JOB_NAME}
[${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]'",
- body: """
-BUILD-STABLE: Job '${env.JOB_NAME} [${env.BRANCH_NAME}] [${env.BUILD_NUMBER}]':
-Is back to normal.
-""",
- to: "[email protected]",
- recipientProviders: [[$class:
'DevelopersRecipientProvider']]
- )
- }
- }
- }
- }
-
-}