diff --git a/.asf.yaml b/.asf.yaml index d703111191..3d64b1d167 100644 --- a/.asf.yaml +++ b/.asf.yaml @@ -30,12 +30,34 @@ github: - stomp - java - jms + enabled_merge_buttons: squash: true - merge: true - rebase: true + merge: false + rebase: false + + 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 + - test + + features: + wiki: false + issues: false + projects: false + autolink_jira: - AMQ + notifications: commits: commits@activemq.apache.org issues: gitbox@activemq.apache.org 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..785dc55a2f --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,73 @@ +# +# 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", "activemq-6.1.x", "activemq-5.19.x" ] + pull_request: + branches: [ "main", "activemq-6.1.x", "activemq-5.19.x" ] + +jobs: + build: + + permissions: + contents: read + + strategy: + matrix: + os: [ ubuntu-24.04, ubuntu-22.04, macos-26, macos-15, macos-14, macos-13, windows-2025, windows-2022 ] + java-version: [ 17, 21, 24 ] + + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v4 + - name: Set up JDK + uses: actions/setup-java@v4 + with: + java-version: ${{ matrix.java-version }} + distribution: temurin + - name: Build + run: mvn -U -B -e clean install -DskipTests + - name: Verify + run: mvn apache-rat:check + + test: + + permissions: + contents: read + + strategy: + matrix: + os: [ ubuntu-24.04, ubuntu-22.04, macos-26, macos-15, macos-14, macos-13, windows-2025, windows-2022 ] + java-version: [ 17 ] + + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v4 + - name: Set up JDK + uses: actions/setup-java@v4 + with: + java-version: ${{ matrix.java-version }} + distribution: temurin + - name: Test + run: mvn -B -e -fae test "-Dsurefire.rerunFailingTestsCount=3" diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000000..dd94e3cb0d --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,42 @@ +# +# 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: Deploy + +on: + schedule: + - cron: '0 0 * * *' + +jobs: + deploy: + + permissions: + contents: read + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Set up JDK + uses: actions/setup-java@v4 + with: + java-version: 17 + distribution: temurin + - name: Deploy + run: mvn -B -e deploy -Pdeploy -DskipTests diff --git a/Jenkinsfile b/Jenkinsfile index d1891aad95..5e7afca6b9 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -27,6 +27,10 @@ pipeline { } } + triggers { + cron('0 0 * * *') + } + tools { // ... tell Jenkins what java version, maven version or other tools are required ... maven 'maven_3_latest' @@ -42,10 +46,9 @@ pipeline { } parameters { - choice(name: 'nodeLabel', choices: ['ubuntu', 's390x', 'arm', 'Windows']) + choice(name: 'nodeLabel', choices: [ 's390x']) choice(name: 'jdkVersion', choices: ['jdk_17_latest', 'jdk_21_latest', 'jdk_24_latest', 'jdk_17_latest_windows', 'jdk_21_latest_windows', 'jdk_24_latest_windows']) - booleanParam(name: 'deployEnabled', defaultValue: false) - booleanParam(name: 'sonarEnabled', defaultValue: false) + booleanParam(name: 'sonarEnabled', defaultValue: true) booleanParam(name: 'testsEnabled', defaultValue: true) } @@ -141,23 +144,6 @@ pipeline { } } - stage('Deploy') { - tools { - jdk params.jdkVersion - } - when { - expression { - params.deployEnabled && env.BRANCH_NAME ==~ /(activemq-5.19.x|activemq-6.1.x|main)/ - } - } - steps { - echo 'Deploying' - sh 'java -version' - sh 'mvn -version' - sh 'mvn -B -e deploy -Pdeploy -DskipTests' - } - } - stage('Quality') { when { expression { return params.sonarEnabled } } diff --git a/activemq-kahadb-store/pom.xml b/activemq-kahadb-store/pom.xml index b9e560c169..9212cde58c 100644 --- a/activemq-kahadb-store/pom.xml +++ b/activemq-kahadb-store/pom.xml @@ -30,6 +30,10 @@ ActiveMQ :: KahaDB Store The ActiveMQ KahaDB Store Implementation + + -Xmx512M + + diff --git a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/JournalCorruptionEofIndexRecoveryTest.java b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/JournalCorruptionEofIndexRecoveryTest.java index cebb182be7..72adff5ff2 100644 --- a/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/JournalCorruptionEofIndexRecoveryTest.java +++ b/activemq-kahadb-store/src/test/java/org/apache/activemq/store/kahadb/JournalCorruptionEofIndexRecoveryTest.java @@ -63,12 +63,13 @@ import org.apache.logging.log4j.core.layout.MessageLayout; import org.junit.After; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.event.LoggingEvent; - +@Ignore("Temporary to test GitHub Action") public class JournalCorruptionEofIndexRecoveryTest { private static final Logger LOG = LoggerFactory.getLogger(JournalCorruptionEofIndexRecoveryTest.class); diff --git a/pom.xml b/pom.xml index d059ae78fa..1b4bb7af16 100644 --- a/pom.xml +++ b/pom.xml @@ -968,13 +968,12 @@ true 1 true - -enableassertions false true true - -Xmx512m + -enableassertions -Xmx1G