From 868d7837464f18a87711fa7af05a60c80ce4f0fa Mon Sep 17 00:00:00 2001 From: Damian Ujma <92095156+damianujma@users.noreply.github.com> Date: Tue, 10 Jan 2023 15:50:11 +0100 Subject: [PATCH] ACS-3841 Migrate to GHA (#1631) * ACS-3841 Use configure-git-author, rename steps, remove always from maven cache clean step * ACS-3841 Fix PostgreSQL 13.7 tests step name * ACS-3841 Fix update_downstream job * ACS-3841 Set global option for configure-git-author action * ACS-3841 Update license header * ACS-3841 Update configure-git-author version + improve uploading artifacts * ACS-3841 Improve uploading artifacts * ACS-3841 Fix uploading artifacts * ACS-3841 Rename jobs names + revert removed functions * ACS-3841 Fix step condition * ACS-3841 Update to latest alfresco-build-tools Co-authored-by: mikolajbrzezinski --- .../.ci.settings.xml | 0 .github/workflows/ci.yml | 531 ++++++++++++++++++ .github/workflows/master_release.yml | 75 +++ .travis.yml | 425 -------------- README.md | 2 +- amps/ags/{travis => ci}/scripts/getLogs.sh | 0 .../AlphabeticalPriorityInterceptor.java | 52 ++ .../src/test/resources/testng.xml | 5 +- amps/pom.xml | 2 +- scripts/{travis => ci}/build.sh | 0 scripts/{travis => ci}/build_functions.sh | 18 +- scripts/{travis => ci}/cleanup_cache.sh | 0 .../ci/docker-compose/docker-compose-db.yaml | 40 ++ scripts/ci/docker-compose/docker-compose.yaml | 26 + scripts/{travis => ci}/init.sh | 2 +- scripts/{travis => ci}/maven_release.sh | 8 +- scripts/{travis => ci}/prepare.sh | 0 .../ci/tests/AppContext05TestSuite-setup.sh | 15 + scripts/{travis => ci}/update_downstream.sh | 12 +- scripts/{travis => ci}/verify_release_tag.sh | 0 scripts/travis/source_clear.sh | 26 - 21 files changed, 760 insertions(+), 479 deletions(-) rename .travis.settings.xml => .github/.ci.settings.xml (100%) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/master_release.yml delete mode 100644 .travis.yml rename amps/ags/{travis => ci}/scripts/getLogs.sh (100%) create mode 100644 amps/ags/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/utils/AlphabeticalPriorityInterceptor.java rename scripts/{travis => ci}/build.sh (100%) rename scripts/{travis => ci}/build_functions.sh (89%) rename scripts/{travis => ci}/cleanup_cache.sh (100%) create mode 100644 scripts/ci/docker-compose/docker-compose-db.yaml create mode 100644 scripts/ci/docker-compose/docker-compose.yaml rename scripts/{travis => ci}/init.sh (87%) rename scripts/{travis => ci}/maven_release.sh (83%) rename scripts/{travis => ci}/prepare.sh (100%) create mode 100644 scripts/ci/tests/AppContext05TestSuite-setup.sh rename scripts/{travis => ci}/update_downstream.sh (79%) rename scripts/{travis => ci}/verify_release_tag.sh (100%) delete mode 100755 scripts/travis/source_clear.sh diff --git a/.travis.settings.xml b/.github/.ci.settings.xml similarity index 100% rename from .travis.settings.xml rename to .github/.ci.settings.xml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000000..7be18c4010 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,531 @@ +name: Alfresco Community Repo CI + +on: + pull_request: + branches: + - feature/** + - fix/** + - master + - release/** + push: + branches: + - feature/** + - fix/** + workflow_call: + workflow_dispatch: + +env: + DOCKERHUB_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }} + GITHUB_ACTIONS_DEPLOY_TIMEOUT: 60 + LOG_WARN: "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" + MAVEN_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} + MAVEN_USERNAME: ${{ secrets.NEXUS_USERNAME }} + QUAY_PASSWORD: ${{ secrets.QUAY_PASSWORD }} + QUAY_USERNAME: ${{ secrets.QUAY_USERNAME }} + TAS_ENVIRONMENT: ./packaging/tests/environment + TAS_SCRIPTS: ../alfresco-community-repo/packaging/tests/scripts + +jobs: + prepare: + name: "Prepare" + runs-on: ubuntu-latest + if: > + !contains(github.event.head_commit.message, '[skip tests]') && + !contains(github.event.head_commit.message, '[force]') + steps: + - uses: actions/checkout@v3 + - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0 + - uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0 + - name: "Init" + run: bash ./scripts/ci/init.sh + - name: "Prepare environment" + run: bash ./scripts/ci/prepare.sh + - name: "Clean Maven cache" + run: bash ./scripts/ci/cleanup_cache.sh + + veracode: + name: "Source Clear Scan (SCA)" + runs-on: ubuntu-latest + needs: [prepare] + if: > + ((github.ref_name == 'master' || contains(github.ref_name, 'release/')) && github.event_name != 'pull_request') && + !contains(github.event.head_commit.message, '[skip tests]') && + !contains(github.event.head_commit.message, '[force]') + steps: + - uses: actions/checkout@v3 + - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0 + - uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0 + - name: "Init" + run: bash ./scripts/ci/init.sh + - uses: Alfresco/alfresco-build-tools/.github/actions/veracode@v1.30.0 + with: + srcclr-api-token: ${{ secrets.SRCCLR_API_TOKEN }} + - name: "Clean Maven cache" + run: bash ./scripts/ci/cleanup_cache.sh + + all_unit_tests_suite: + name: "Core, Data-Model, Repository - AllUnitTestsSuite - Build and test" + runs-on: ubuntu-latest + needs: [prepare] + if: > + !contains(github.event.head_commit.message, '[skip repo]') && + !contains(github.event.head_commit.message, '[skip tests]') && + !contains(github.event.head_commit.message, '[force]') + steps: + - uses: actions/checkout@v3 + - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0 + - uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0 + - name: "Init" + run: bash ./scripts/ci/init.sh + - name: "Run tests" + run: | + mvn -B test -pl core,data-model -am -DfailIfNoTests=false + mvn -B test -pl "repository,mmt" -am "-Dtest=AllUnitTestsSuite,AllMmtUnitTestSuite" -DfailIfNoTests=false + - name: "Clean Maven cache" + run: bash ./scripts/ci/cleanup_cache.sh + + remote_api_app_context_test_suites: + name: Remote-api - ${{ matrix.testSuite }} + runs-on: ubuntu-latest + needs: [prepare] + if: > + !contains(github.event.head_commit.message, '[skip repo]') && + !contains(github.event.head_commit.message, '[skip tests]') && + !contains(github.event.head_commit.message, '[force]') + strategy: + fail-fast: false + matrix: + include: + - testSuite: AppContext01TestSuite + compose-profile: default + - testSuite: AppContext02TestSuite + compose-profile: with-transform-core-aio + - testSuite: AppContext03TestSuite + compose-profile: with-transform-core-aio + - testSuite: AppContext04TestSuite + compose-profile: with-transform-core-aio + - testSuite: AppContextExtraTestSuite + compose-profile: default + env: + REQUIRES_INSTALLED_ARTIFACTS: true + steps: + - uses: actions/checkout@v3 + - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0 + - uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0 + - name: "Build" + timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} + run: | + bash ./scripts/ci/init.sh + bash ./scripts/ci/build.sh + - name: "Set transformers tag" + run: echo "TRANSFORMERS_TAG=$(mvn help:evaluate -Dexpression=dependency.alfresco-transform-core.version -q -DforceStdout)" >> $GITHUB_ENV + - name: "Set up the environment" + run: docker-compose -f ./scripts/ci/docker-compose/docker-compose.yaml --profile ${{ matrix.compose-profile }} up -d + - name: "Run tests" + run: mvn -B test -pl remote-api -Dtest=${{ matrix.testSuite }} -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco + - name: "Clean Maven cache" + run: bash ./scripts/ci/cleanup_cache.sh + + repository_mariadb_tests: + name: Repository - MariaDB ${{ matrix.version }} tests + runs-on: ubuntu-latest + needs: [prepare] + if: > + (((github.ref_name == 'master' || contains(github.ref_name, 'release/')) && + github.event_name != 'pull_request' && + !contains(github.event.head_commit.message, '[skip db]')) || + contains(github.event.head_commit.message, '[db]')) && + !contains(github.event.head_commit.message, '[skip tests]') && + !contains(github.event.head_commit.message, '[force]') + strategy: + fail-fast: false + matrix: + version: ['10.2.18', '10.4', '10.5'] + steps: + - uses: actions/checkout@v3 + - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0 + - uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0 + - name: "Init" + run: bash ./scripts/ci/init.sh + - name: Run MariaDB ${{ matrix.version }} database + run: docker-compose -f ./scripts/ci/docker-compose/docker-compose-db.yaml --profile mariadb up -d + env: + MARIADB_VERSION: ${{ matrix.version }} + - name: "Run tests" + run: mvn -B test -pl repository -am -Dtest=AllDBTestsTestSuite -DfailIfNoTests=false -Ddb.name=alfresco -Ddb.url=jdbc:mariadb://localhost:3307/alfresco?useUnicode=yes\&characterEncoding=UTF-8 -Ddb.username=alfresco -Ddb.password=alfresco -Ddb.driver=org.mariadb.jdbc.Driver + - name: "Clean Maven cache" + run: bash ./scripts/ci/cleanup_cache.sh + + repository_mariadb_10_6_tests: + name: "Repository - MariaDB 10.6 tests" + runs-on: ubuntu-latest + needs: [prepare] + if: > + (((github.ref_name == 'master' || contains(github.ref_name, 'release/') || github.event_name == 'pull_request') && + !contains(github.event.head_commit.message, '[skip db]')) || + contains(github.event.head_commit.message, '[latest db]') || + contains(github.event.head_commit.message, '[db]')) && + !contains(github.event.head_commit.message, '[skip tests]') && + !contains(github.event.head_commit.message, '[force]') + steps: + - uses: actions/checkout@v3 + - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0 + - uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0 + - name: "Init" + run: bash ./scripts/ci/init.sh + - name: "Run MariaDB 10.6 database" + run: docker-compose -f ./scripts/ci/docker-compose/docker-compose-db.yaml --profile mariadb up -d + env: + MARIADB_VERSION: 10.6 + - name: "Run tests" + run: mvn -B test -pl repository -am -Dtest=AllDBTestsTestSuite -DfailIfNoTests=false -Ddb.name=alfresco -Ddb.url=jdbc:mariadb://localhost:3307/alfresco?useUnicode=yes\&characterEncoding=UTF-8 -Ddb.username=alfresco -Ddb.password=alfresco -Ddb.driver=org.mariadb.jdbc.Driver + - name: "Clean Maven cache" + run: bash ./scripts/ci/cleanup_cache.sh + + repository_mysql_tests: + name: Repository - MySQL 8 tests + runs-on: ubuntu-latest + needs: [prepare] + if: > + (((github.ref_name == 'master' || contains(github.ref_name, 'release/') || github.event_name == 'pull_request') && + !contains(github.event.head_commit.message, '[skip db]')) || + contains(github.event.head_commit.message, '[latest db]') || + contains(github.event.head_commit.message, '[db]')) && + !contains(github.event.head_commit.message, '[skip tests]') && + !contains(github.event.head_commit.message, '[force]') + steps: + - uses: actions/checkout@v3 + - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0 + - uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0 + - name: "Init" + run: bash ./scripts/ci/init.sh + - name: "Run MySQL 8 database" + run: docker-compose -f ./scripts/ci/docker-compose/docker-compose-db.yaml --profile mysql up -d + env: + MYSQL_VERSION: 8 + - name: "Run tests" + run: mvn -B test -pl repository -am -Dtest=AllDBTestsTestSuite -DfailIfNoTests=false -Ddb.driver=com.mysql.jdbc.Driver -Ddb.name=alfresco -Ddb.url=jdbc:mysql://localhost:3307/alfresco -Ddb.username=alfresco -Ddb.password=alfresco + - name: "Clean Maven cache" + run: bash ./scripts/ci/cleanup_cache.sh + + repository_postgresql_13_7_tests: + name: "Repository - PostgreSQL 13.7 tests" + runs-on: ubuntu-latest + needs: [prepare] + if: > + (((github.ref_name == 'master' || contains(github.ref_name, 'release/')) && github.event_name != 'pull_request' && + !contains(github.event.head_commit.message, '[skip db]')) || + contains(github.event.head_commit.message, '[db]')) && + !contains(github.event.head_commit.message, '[skip tests]') && + !contains(github.event.head_commit.message, '[force]') + steps: + - uses: actions/checkout@v3 + - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0 + - uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0 + - name: "Init" + run: bash ./scripts/ci/init.sh + - name: "Run PostgreSQL 13.7 database" + run: docker-compose -f ./scripts/ci/docker-compose/docker-compose-db.yaml --profile postgres up -d + env: + POSTGRES_VERSION: 13.7 + - name: "Run tests" + run: mvn -B test -pl repository -am -Dtest=AllDBTestsTestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco + - name: "Clean Maven cache" + run: bash ./scripts/ci/cleanup_cache.sh + + repository_postgresql_14_4_tests: + name: "Repository - PostgreSQL 14.4 tests" + runs-on: ubuntu-latest + needs: [prepare] + if: > + (!contains(github.event.head_commit.message, '[skip db]') || + contains(github.event.head_commit.message, '[latest db]') || + contains(github.event.head_commit.message, '[db]')) && + !contains(github.event.head_commit.message, '[skip tests]') && + !contains(github.event.head_commit.message, '[force]') + steps: + - uses: actions/checkout@v3 + - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0 + - uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0 + - name: "Init" + run: bash ./scripts/ci/init.sh + - name: "Run PostgreSQL 14.4 database" + run: docker-compose -f ./scripts/ci/docker-compose/docker-compose-db.yaml --profile postgres up -d + env: + POSTGRES_VERSION: 14.4 + - name: "Run tests" + run: mvn -B test -pl repository -am -Dtest=AllDBTestsTestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco + - name: "Clean Maven cache" + run: bash ./scripts/ci/cleanup_cache.sh + + repository_messaging_tests: + name: Repository - Messaging tests + runs-on: ubuntu-latest + needs: [prepare] + if: > + !contains(github.event.head_commit.message, '[skip repo]') && + !contains(github.event.head_commit.message, '[skip tests]') && + !contains(github.event.head_commit.message, '[force]') + steps: + - uses: actions/checkout@v3 + - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0 + - uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0 + - name: "Init" + run: bash ./scripts/ci/init.sh + - name: "Run ActiveMQ" + run: docker-compose -f ./scripts/ci/docker-compose/docker-compose.yaml --profile activemq up -d + - name: "Run tests" + run: mvn -B test -pl repository -am -Dtest=CamelRoutesTest,CamelComponentsTest -DfailIfNoTests=false + - name: "Clean Maven cache" + run: bash ./scripts/ci/cleanup_cache.sh + + repository_app_context_test_suites: + name: Repository - ${{ matrix.testSuite }} + runs-on: ubuntu-latest + needs: [prepare] + if: > + !contains(github.event.head_commit.message, '[skip repo]') && + !contains(github.event.head_commit.message, '[skip tests]') && + !contains(github.event.head_commit.message, '[force]') + strategy: + fail-fast: false + matrix: + include: + - testSuite: AppContext01TestSuite + compose-profile: with-transform-core-aio + - testSuite: AppContext02TestSuite + compose-profile: default + - testSuite: AppContext03TestSuite + compose-profile: with-transform-core-aio + - testSuite: AppContext04TestSuite + compose-profile: with-transform-core-aio + - testSuite: AppContext05TestSuite + compose-profile: default + mvn-options: '"-Didentity-service.auth-server-url=http://${HOST_IP}:8999/auth"' + - testSuite: AppContext06TestSuite + compose-profile: with-transform-core-aio + - testSuite: AppContextExtraTestSuite + compose-profile: with-transform-core-aio + - testSuite: MiscContextTestSuite + compose-profile: with-transform-core-aio + - testSuite: SearchTestSuite + compose-profile: default + mvn-options: '-Dindex.subsystem.name=solr6' + steps: + - uses: actions/checkout@v3 + - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0 + - uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0 + - name: "Init" + run: bash ./scripts/ci/init.sh + - name: "Set transformers tag" + run: echo "TRANSFORMERS_TAG=$(mvn help:evaluate -Dexpression=dependency.alfresco-transform-core.version -q -DforceStdout)" >> $GITHUB_ENV + - name: "Set up the environment" + run: | + if [ -e ./scripts/ci/tests/${{ matrix.testSuite }}-setup.sh ]; then + bash ./scripts/ci/tests/${{ matrix.testSuite }}-setup.sh + fi + docker-compose -f ./scripts/ci/docker-compose/docker-compose.yaml --profile ${{ matrix.compose-profile }} up -d + - name: "Run tests" + run: mvn -B test -pl repository -am -Dtest=${{ matrix.testSuite }} -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco ${{ matrix.mvn-options }} + - name: "Clean Maven cache" + run: bash ./scripts/ci/cleanup_cache.sh + + tas_tests: + name: ${{ matrix.test-name }} + runs-on: ubuntu-latest + needs: [prepare] + if: > + (((github.ref_name == 'master' || contains(github.ref_name, 'release/') || github.event_name == 'pull_request' ) && + !contains(github.event.head_commit.message, '[skip tas]')) || + contains(github.event.head_commit.message, '[tas]')) && + !contains(github.event.head_commit.message, '[skip tests]') && + !contains(github.event.head_commit.message, '[force]') + strategy: + fail-fast: false + matrix: + include: + - test-name: "REST API TAS tests part1" + pom-dir: tas-restapi + test-profile: run-restapi-part1 + - test-name: "REST API TAS tests part2" + pom-dir: tas-restapi + test-profile: run-restapi-part2 + - test-name: "REST API TAS tests part3" + pom-dir: tas-restapi + test-profile: run-restapi-part3 + - test-name: "CMIS TAS tests - BROWSER binding" + pom-dir: tas-cmis + test-profile: run-cmis-browser + - test-name: "CMIS TAS tests - ATOM binding" + pom-dir: tas-cmis + test-profile: run-cmis-atom + - test-name: "CMIS TAS tests - WEBSERVICES binding" + pom-dir: tas-cmis + test-profile: run-cmis-webservices + - test-name: "Email TAS tests" + pom-dir: tas-email + - test-name: "WebDAV TAS tests" + pom-dir: tas-webdav + - test-name: "Integration TAS tests" + pom-dir: tas-integration + env: + REQUIRES_LOCAL_IMAGES: true + steps: + - uses: actions/checkout@v3 + - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0 + - uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0 + - name: "Build" + timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} + run: | + bash ./scripts/ci/init.sh + bash ./scripts/ci/build.sh + - name: "Set up the environment" + run: | + ${{ env.TAS_SCRIPTS }}/start-compose.sh ${{ env.TAS_ENVIRONMENT }}/docker-compose-minimal+transforms.yml + ${{ env.TAS_SCRIPTS }}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" + - name: "Build TAS integration tests" + if: ${{ matrix.test-name }} == 'Integration TAS tests' + run: mvn install -pl :alfresco-community-repo-integration-test -am -DskipTests -Pall-tas-tests + - name: "Run tests" + id: tests + timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} + run: mvn -B verify -f packaging/tests/${{ matrix.pom-dir }}/pom.xml -Pall-tas-tests,${{ matrix.test-profile }} -Denvironment=default -DrunBugs=false + - name: "Print output after success" + if: ${{ always() && steps.tests.outcome == 'success' }} + run: ${TAS_SCRIPTS}/output_tests_run.sh "packaging/tests/${{ matrix.pom-dir }}" + - name: "Print output after failure" + if: ${{ always() && steps.tests.outcome == 'failure' }} + run: ${TAS_SCRIPTS}/output_logs_for_failures.sh "packaging/tests/${{ matrix.pom-dir }}" + - name: "Clean Maven cache" + run: bash ./scripts/ci/cleanup_cache.sh + + share_services_test_suite: + name: Share Services - ShareServicesTestSuite + runs-on: ubuntu-latest + needs: [prepare] + if: > + !contains(github.event.head_commit.message, '[skip repo]') && + !contains(github.event.head_commit.message, '[skip tests]') && + !contains(github.event.head_commit.message, '[force]') + steps: + - uses: actions/checkout@v3 + - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0 + - uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0 + - name: "Init" + run: bash ./scripts/ci/init.sh + - name: "Run Postgres 14.4 database" + run: docker-compose -f ./scripts/ci/docker-compose/docker-compose.yaml --profile postgres up -d + - name: "Run tests" + run: mvn -B test -pl :alfresco-share-services -am -Dtest=ShareServicesTestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco + - name: "Clean Maven cache" + run: bash ./scripts/ci/cleanup_cache.sh + + ags_postgresql_tests: + name: AGS Integration Tests 0${{ matrix.part }} (PostgreSQL) ${{ matrix.test-name }} + runs-on: ubuntu-latest + needs: [prepare] + if: > + (((github.ref_name == 'master' || contains(github.ref_name, 'release/') || github.event_name == 'pull_request' ) && + !contains(github.event.head_commit.message, '[skip ags]')) || + contains(github.event.head_commit.message, '[ags]')) && + !contains(github.event.head_commit.message, '[skip tests]') && + !contains(github.event.head_commit.message, '[force]') + strategy: + fail-fast: false + matrix: + part: [1, 2, 3, 4] + env: + REQUIRES_INSTALLED_ARTIFACTS: true + steps: + - uses: actions/checkout@v3 + - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0 + - uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0 + - name: "Build" + timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} + run: | + bash ./scripts/ci/init.sh + bash ./scripts/ci/build.sh + - name: "Verify" + timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} + run: mvn --file amps/ags/pom.xml -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-postgres -PagsAllTestSuitePt${{ matrix.part }} ${{ env.LOG_WARN }} + - name: "Clean Maven cache" + run: bash ./scripts/ci/cleanup_cache.sh + + ags_mysql_tests: + name: AGS Integration Tests 0${{ matrix.part }} (MySQL) ${{ matrix.test-name }} + runs-on: ubuntu-latest + needs: [prepare] + if: > + (((github.ref_name == 'master' || contains(github.ref_name, 'release/') || github.event_name == 'pull_request' ) && + !contains(github.event.head_commit.message, '[skip ags]')) || + contains(github.event.head_commit.message, '[ags on MySQL]')) && + !contains(github.event.head_commit.message, '[skip tests]') && + !contains(github.event.head_commit.message, '[force]') + strategy: + fail-fast: false + matrix: + part: [1, 2, 3, 4] + env: + REQUIRES_INSTALLED_ARTIFACTS: true + steps: + - uses: actions/checkout@v3 + - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0 + - uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0 + - name: "Build" + timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} + run: | + bash ./scripts/ci/init.sh + bash ./scripts/ci/build.sh + - name: "Verify" + timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} + run: mvn --file amps/ags/pom.xml -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-mysql -PagsAllTestSuitePt${{ matrix.part }} ${{ env.LOG_WARN }} + - name: "Clean Maven cache" + run: bash ./scripts/ci/cleanup_cache.sh + + ags_community_rest_api_tests: + name: "AGS Community Rest API Tests" + runs-on: ubuntu-latest + needs: [prepare] + if: > + (((github.ref_name == 'master' || contains(github.ref_name, 'release/') || github.event_name == 'pull_request' ) && + !contains(github.event.head_commit.message, '[skip ags]') && !contains(github.event.head_commit.message, '[skip tas]')) || + (contains(github.event.head_commit.message, '[ags]') && contains(github.event.head_commit.message, '[tas]'))) && + !contains(github.event.head_commit.message, '[skip tests]') && + !contains(github.event.head_commit.message, '[force]') + env: + REQUIRES_LOCAL_IMAGES: true + steps: + - uses: actions/checkout@v3 + - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0 + - uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0 + - name: "Build" + timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} + run: | + bash ./scripts/ci/init.sh + bash ./scripts/ci/build.sh + - name: "Set up the environment" + timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} + run: | + ${{ env.TAS_SCRIPTS }}/start-compose.sh ./amps/ags/rm-community/rm-community-repo/docker-compose.yml + ${{ env.TAS_SCRIPTS }}/wait-for-alfresco-start.sh "http://localhost:8080/alfresco" + mvn -B install -pl :alfresco-governance-services-automation-community-rest-api -am -Pags -Pall-tas-tests -DskipTests + - name: "Test" + timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} + run: mvn -B test -pl :alfresco-governance-services-automation-community-rest-api -Dskip.automationtests=false -Pags -Pall-tas-tests + - name: "Configure AWS credentials" + if: ${{ always() }} + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AGS_AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AGS_AWS_SECRET_ACCESS_KEY }} + aws-region: us-east-1 + - name: "Upload artifacts to Amazon S3 bucket" + if: ${{ always() }} + run: | + bash amps/ags/ci/scripts/getLogs.sh + aws s3 cp --acl private alfresco.log s3://ags-travis-artifacts/community/${{ github.run_number }}/AGS-Community-Rest-API-Tests/alfresco.log + aws s3 cp --acl private solr.log s3://ags-travis-artifacts/community/${{ github.run_number }}/AGS-Community-Rest-API-Tests/solr.log + aws s3 cp --acl private ./amps/ags/rm-automation/rm-automation-community-rest-api/target/reports/rm-automation-community-rest-api.log s3://ags-travis-artifacts/community/${{ github.run_number }}/AGS-Community-Rest-API-Tests/rm-automation-community-rest-api.log + - name: "Clean Maven cache" + run: bash ./scripts/ci/cleanup_cache.sh \ No newline at end of file diff --git a/.github/workflows/master_release.yml b/.github/workflows/master_release.yml new file mode 100644 index 0000000000..30f60b626e --- /dev/null +++ b/.github/workflows/master_release.yml @@ -0,0 +1,75 @@ +name: Master/Release branch workflow + +on: + push: + branches: + - master + - release/** + +env: + GIT_USERNAME: ${{ secrets.BOT_GITHUB_USERNAME }} + GIT_EMAIL: ${{ secrets.BOT_GITHUB_EMAIL }} + GIT_PASSWORD: ${{ secrets.BOT_GITHUB_TOKEN }} + DOCKERHUB_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} + MAVEN_USERNAME: ${{ secrets.NEXUS_USERNAME }} + QUAY_PASSWORD: ${{ secrets.QUAY_PASSWORD }} + QUAY_USERNAME: ${{ secrets.QUAY_USERNAME }} + GITHUB_ACTIONS_DEPLOY_TIMEOUT: 60 + +jobs: + run_ci: + uses: ./.github/workflows/ci.yml + secrets: inherit + push_to_nexus: + name: "Push to Nexus" + runs-on: ubuntu-latest + needs: [run_ci] + if: > + !failure() && + !contains(github.event.head_commit.message, '[no release]') && + github.event_name != 'pull_request' + steps: + - uses: actions/checkout@v3 + - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0 + - uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0 + - name: "Init" + run: bash ./scripts/ci/init.sh + - uses: Alfresco/alfresco-build-tools/.github/actions/configure-git-author@v1.30.0 + with: + username: ${{ env.GIT_USERNAME }} + email: ${{ env.GIT_EMAIL }} + global: true + - name: "Release" + timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} + run: | + bash scripts/ci/verify_release_tag.sh + bash scripts/ci/maven_release.sh + - name: "Clean Maven cache" + run: bash ./scripts/ci/cleanup_cache.sh + update_downstream: + name: "Update alfresco-enterprise-repo" + runs-on: ubuntu-latest + needs: [push_to_nexus] + if: > + !failure() && + !contains(github.event.head_commit.message, '[no downstream]') && + github.event_name != 'pull_request' + steps: + - uses: actions/checkout@v3 + - uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0 + - uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0 + - name: "Init" + run: bash ./scripts/ci/init.sh + - uses: Alfresco/alfresco-build-tools/.github/actions/configure-git-author@v1.30.0 + with: + username: ${{ env.GIT_USERNAME }} + email: ${{ env.GIT_EMAIL }} + global: true + - name: "Update downstream" + run: bash ./scripts/ci/update_downstream.sh + env: + COMMIT_MESSAGE: ${{ github.event.head_commit.message }} + - name: "Clean Maven cache" + run: bash ./scripts/ci/cleanup_cache.sh \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index df0572754f..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,425 +0,0 @@ ---- -dist: focal -language: java -jdk: openjdk17 - -services: - - docker - -git: - depth: false - quiet: true - -cache: - directories: - - ${HOME}/.m2/repository - -# the cache can grow constantly -before_cache: bash scripts/travis/cleanup_cache.sh - -branches: - only: - - master - - /release\/.*/ - - /feature\/.*/ - - /fix\/.*/ - -env: - global: - - TRANSFORMERS_TAG=$(mvn help:evaluate -Dexpression=dependency.alfresco-transform-core.version -q -DforceStdout) - - TAS_SCRIPTS=../alfresco-community-repo/packaging/tests/scripts - - TAS_ENVIRONMENT=./packaging/tests/environment - - LOG_WARN="-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" - -stages: - - name: prepare - if: commit_message !~ /\[skip tests\]/ AND commit_message !~ /\[force[^\]]*\]/ - - name: test - if: commit_message !~ /\[skip tests\]/ AND commit_message !~ /\[force[^\]]*\]/ - - name: release - if: commit_message !~ /\[no release\]/ AND (branch = master OR branch =~ /release\/.*/) AND type != pull_request AND fork = false - - name: update_downstream - if: commit_message !~ /\[no downstream\]/ AND (branch = master OR branch =~ /release\/.*/) AND type != pull_request AND fork = false - -before_install: travis_retry bash scripts/travis/init.sh -install: travis_retry travis_wait 40 bash scripts/travis/build.sh - -jobs: - include: - - name: "Prepare" - stage: prepare - install: skip - script: travis_retry travis_wait 80 bash scripts/travis/prepare.sh - - - name: "Source Clear Scan (SCA)" - stage: test - if: (branch = master OR branch =~ /release\/.*/) AND type != pull_request - # Run Veracode - install: skip - script: travis_wait 30 bash scripts/travis/source_clear.sh - - - name: "Core, Data-Model, Repository - AllUnitTestsSuite - Build and test" - if: commit_message !~ /\[skip repo\]/ - install: skip - script: - - travis_retry mvn -B test -pl core,data-model -am -DfailIfNoTests=false - - travis_retry mvn -B test -pl "repository,mmt" -am "-Dtest=AllUnitTestsSuite,AllMmtUnitTestSuite" -DfailIfNoTests=false - - - name: "Repository - AppContext01TestSuite" - if: commit_message !~ /\[skip repo\]/ - install: skip - before_script: - - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:${TRANSFORMERS_TAG} - script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AppContext01TestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco - - - name: "Repository - AppContext02TestSuite" - if: commit_message !~ /\[skip repo\]/ - install: skip - before_script: - - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AppContext02TestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco - - - name: "Repository - AppContext03TestSuite" - if: commit_message !~ /\[skip repo\]/ - install: skip - before_script: - - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:${TRANSFORMERS_TAG} - script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AppContext03TestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco - - - name: "Repository - AppContext04TestSuite" - if: commit_message !~ /\[skip repo\]/ - install: skip - before_script: - - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:${TRANSFORMERS_TAG} - script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AppContext04TestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco - - - name: "Repository - AppContext05TestSuite" - if: commit_message !~ /\[skip repo\]/ - install: skip - before_script: - - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - - mkdir -p "${HOME}/tmp" - - cp repository/src/test/resources/realms/alfresco-realm.json "${HOME}/tmp" - - export HOST_IP=$(hostname -I | cut -f1 -d' ') - - docker run -d -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin -e DB_VENDOR=h2 -p 8999:8080 -e KEYCLOAK_IMPORT=/tmp/alfresco-realm.json -v $HOME/tmp/alfresco-realm.json:/tmp/alfresco-realm.json alfresco/alfresco-identity-service:1.2 - script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AppContext05TestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco "-Didentity-service.auth-server-url=http://${HOST_IP}:8999/auth" - - - name: "Repository - AppContext06TestSuite" - if: commit_message !~ /\[skip repo\]/ - install: skip - before_script: - - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:${TRANSFORMERS_TAG} - script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AppContext06TestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco - - - name: "Repository - AppContextExtraTestSuite" - if: commit_message !~ /\[skip repo\]/ - install: skip - before_script: - - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:${TRANSFORMERS_TAG} - script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AppContextExtraTestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco - - - name: "Repository - MiscContextTestSuite" - if: commit_message !~ /\[skip repo\]/ - install: skip - before_script: - - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:${TRANSFORMERS_TAG} - script: travis_wait 20 mvn -B test -pl repository -am -Dtest=MiscContextTestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco - - - name: "Repository - SearchTestSuite" - if: commit_message !~ /\[skip repo\]/ - install: skip - before_script: - - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - script: travis_wait 20 mvn -B test -pl repository -am -Dtest=SearchTestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco -Dindex.subsystem.name=solr6 - - - name: "Repository - MariaDB 10.2.18 tests" - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ AND type != pull_request) OR commit_message =~ /\[db\]/ - install: skip - before_script: - - docker run -d -p 3307:3306 --name mariadb -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mariadb:10.2.18 --transaction-isolation=READ-COMMITTED --max-connections=300 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AllDBTestsTestSuite -DfailIfNoTests=false -Ddb.name=alfresco -Ddb.url=jdbc:mariadb://localhost:3307/alfresco?useUnicode=yes\&characterEncoding=UTF-8 -Ddb.username=alfresco -Ddb.password=alfresco -Ddb.driver=org.mariadb.jdbc.Driver - - - name: "Repository - MariaDB 10.4 tests" - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ AND type != pull_request) OR commit_message =~ /\[db\]/ - install: skip - before_script: - - docker run -d -p 3307:3306 --name mariadb -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mariadb:10.4 --transaction-isolation=READ-COMMITTED --max-connections=300 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AllDBTestsTestSuite -DfailIfNoTests=false -Ddb.name=alfresco -Ddb.url=jdbc:mariadb://localhost:3307/alfresco?useUnicode=yes\&characterEncoding=UTF-8 -Ddb.username=alfresco -Ddb.password=alfresco -Ddb.driver=org.mariadb.jdbc.Driver - - - name: "Repository - MariaDB 10.5 tests" - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ AND type != pull_request) OR commit_message =~ /\[db\]/ - install: skip - before_script: - - docker run -d -p 3307:3306 --name mariadb -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mariadb:10.5 --transaction-isolation=READ-COMMITTED --max-connections=300 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AllDBTestsTestSuite -DfailIfNoTests=false -Ddb.name=alfresco -Ddb.url=jdbc:mariadb://localhost:3307/alfresco?useUnicode=yes\&characterEncoding=UTF-8 -Ddb.username=alfresco -Ddb.password=alfresco -Ddb.driver=org.mariadb.jdbc.Driver - - - name: "Repository - MariaDB 10.6 tests" - # We run tests on the latest version of MariaDB on pull requests plus the normal master and release branches - ignored on feature branches - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ ) OR commit_message =~ /\[db\]/ OR commit_message =~ /\[latest db\]/ - install: skip - before_script: - - docker run -d -p 3307:3306 --name mariadb -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mariadb:10.6 --transaction-isolation=READ-COMMITTED --max-connections=300 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AllDBTestsTestSuite -DfailIfNoTests=false -Ddb.name=alfresco -Ddb.url=jdbc:mariadb://localhost:3307/alfresco?useUnicode=yes\&characterEncoding=UTF-8 -Ddb.username=alfresco -Ddb.password=alfresco -Ddb.driver=org.mariadb.jdbc.Driver - - - name: "Repository - MySQL 8 tests" - # We run tests on the latest version of MySQL on pull requests plus the normal master and release branches - ignored on feature branches - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ ) OR commit_message =~ /\[db\]/ OR commit_message =~ /\[latest db\]/ - install: skip - before_script: - - docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=alfresco -e MYSQL_USER=alfresco -e MYSQL_DATABASE=alfresco -e MYSQL_PASSWORD=alfresco mysql:8 --transaction-isolation='READ-COMMITTED' - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AllDBTestsTestSuite -DfailIfNoTests=false -Ddb.driver=com.mysql.jdbc.Driver -Ddb.name=alfresco -Ddb.url=jdbc:mysql://localhost:3307/alfresco -Ddb.username=alfresco -Ddb.password=alfresco - - - name: "Repository - PostgreSQL 13.7 tests" - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip db\]/ AND type != pull_request) OR commit_message =~ /\[db\]/ - install: skip - before_script: - - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.7 postgres -c 'max_connections=300' - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AllDBTestsTestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco - - - name: "Repository - PostgreSQL 14.4 tests" - # We only run DB tests on the latest version of PostgreSQL on feature branches - if: commit_message !~ /\[skip db\]/ OR commit_message =~ /\[db\]/ OR commit_message =~ /\[latest db\]/ - install: skip - before_script: - - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - script: travis_wait 20 mvn -B test -pl repository -am -Dtest=AllDBTestsTestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco - - - name: "Repository - Messaging tests" - if: commit_message !~ /\[skip repo\]/ - install: skip - before_script: - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - script: travis_wait 20 mvn -B test -pl repository -am -Dtest=CamelRoutesTest,CamelComponentsTest -DfailIfNoTests=false - - - name: "Remote-api - AppContext01TestSuite" - if: commit_message !~ /\[skip repo\]/ - install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh - before_script: - - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext01TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco - - - name: "Remote-api - AppContext02TestSuite" - if: commit_message !~ /\[skip repo\]/ - install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh - before_script: - - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:${TRANSFORMERS_TAG} - script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext02TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco - - - name: "Remote-api - AppContext03TestSuite" - if: commit_message !~ /\[skip repo\]/ - install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh - before_script: - - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:${TRANSFORMERS_TAG} - script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext03TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco - - - name: "Remote-api - AppContext04TestSuite" - if: commit_message !~ /\[skip repo\]/ - install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh - before_script: - - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:${TRANSFORMERS_TAG} - script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext04TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco - - - name: "Remote-api - AppContextExtraTestSuite" - if: commit_message !~ /\[skip repo\]/ - install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh - before_script: - - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContextExtraTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco - - - name: "REST API TAS tests part1" - # TAS tests are generally skipped on feature branches as they will be repeated on the enterprise repo or community packaging builds - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/ - install: travis_retry travis_wait 40 env REQUIRES_LOCAL_IMAGES=true bash scripts/travis/build.sh - before_script: - - ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml - - ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" - script: travis_wait 60 mvn -B verify -f packaging/tests/tas-restapi/pom.xml -Pall-tas-tests,run-restapi-part1 -Denvironment=default -DrunBugs=false - after_success: ${TAS_SCRIPTS}/output_tests_run.sh "packaging/tests/tas-restapi" - after_failure: ${TAS_SCRIPTS}/output_logs_for_failures.sh "packaging/tests/tas-restapi" - - - name: "REST API TAS tests part2" - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/ - install: travis_retry travis_wait 40 env REQUIRES_LOCAL_IMAGES=true bash scripts/travis/build.sh - before_script: - - ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml - - ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" - script: travis_wait 60 mvn -B verify -f packaging/tests/tas-restapi/pom.xml -Pall-tas-tests,run-restapi-part2 -Denvironment=default -DrunBugs=false - after_success: ${TAS_SCRIPTS}/output_tests_run.sh "packaging/tests/tas-restapi" - after_failure: ${TAS_SCRIPTS}/output_logs_for_failures.sh "packaging/tests/tas-restapi" - - - name: "REST API TAS tests part3" - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/ - install: travis_retry travis_wait 40 env REQUIRES_LOCAL_IMAGES=true bash scripts/travis/build.sh - before_script: - - ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml - - ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" - script: travis_wait 60 mvn -B verify -f packaging/tests/tas-restapi/pom.xml -Pall-tas-tests,run-restapi-part3 -Denvironment=default -DrunBugs=false - after_success: ${TAS_SCRIPTS}/output_tests_run.sh "packaging/tests/tas-restapi" - after_failure: ${TAS_SCRIPTS}/output_logs_for_failures.sh "packaging/tests/tas-restapi" - - - name: "CMIS TAS tests - BROWSER binding" - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/ - install: travis_retry travis_wait 40 env REQUIRES_LOCAL_IMAGES=true bash scripts/travis/build.sh - before_script: - - ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml - - ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" - script: travis_wait 40 mvn -B verify -f packaging/tests/tas-cmis/pom.xml -Pall-tas-tests,run-cmis-browser -Denvironment=default -DrunBugs=false - after_success: ${TAS_SCRIPTS}/output_tests_run.sh "packaging/tests/tas-cmis" - after_failure: ${TAS_SCRIPTS}/output_logs_for_failures.sh "packaging/tests/tas-cmis" - - - name: "CMIS TAS tests - ATOM binding" - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/ - install: travis_retry travis_wait 40 env REQUIRES_LOCAL_IMAGES=true bash scripts/travis/build.sh - before_script: - - ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml - - ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" - script: travis_wait 40 mvn -B verify -f packaging/tests/tas-cmis/pom.xml -Pall-tas-tests,run-cmis-atom -Denvironment=default -DrunBugs=false - after_success: ${TAS_SCRIPTS}/output_tests_run.sh "packaging/tests/tas-cmis" - after_failure: ${TAS_SCRIPTS}/output_logs_for_failures.sh "packaging/tests/tas-cmis" - - - name: "CMIS TAS tests - WEBSERVICES binding" - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/ - install: travis_retry travis_wait 40 env REQUIRES_LOCAL_IMAGES=true bash scripts/travis/build.sh - before_script: - - ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml - - ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" - script: travis_wait 40 mvn -B verify -f packaging/tests/tas-cmis/pom.xml -Pall-tas-tests,run-cmis-webservices -Denvironment=default -DrunBugs=false - after_success: ${TAS_SCRIPTS}/output_tests_run.sh "packaging/tests/tas-cmis" - after_failure: ${TAS_SCRIPTS}/output_logs_for_failures.sh "packaging/tests/tas-cmis" - - - name: "Email TAS tests" - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/ - install: travis_retry travis_wait 40 env REQUIRES_LOCAL_IMAGES=true bash scripts/travis/build.sh - before_script: - - ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal.yml - - ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" - script: travis_wait 30 mvn -B verify -f packaging/tests/tas-email/pom.xml -Pall-tas-tests -Denvironment=default -DrunBugs=false - after_success: ${TAS_SCRIPTS}/output_tests_run.sh "packaging/tests/tas-email" - after_failure: ${TAS_SCRIPTS}/output_logs_for_failures.sh "packaging/tests/tas-email" - - - name: "WebDAV TAS tests" - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/ - install: travis_retry travis_wait 40 env REQUIRES_LOCAL_IMAGES=true bash scripts/travis/build.sh - before_script: - - ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal.yml - - ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" - script: travis_wait 30 mvn -B verify -f packaging/tests/tas-webdav/pom.xml -Pall-tas-tests -Denvironment=default -DrunBugs=false - after_success: ${TAS_SCRIPTS}/output_tests_run.sh "packaging/tests/tas-webdav" - after_failure: ${TAS_SCRIPTS}/output_logs_for_failures.sh "packaging/tests/tas-webdav" - - - name: "Integration TAS tests" - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip tas\]/) OR commit_message =~ /\[tas\]/ - install: travis_retry travis_wait 40 env REQUIRES_LOCAL_IMAGES=true bash scripts/travis/build.sh - before_script: - - ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal.yml - - ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" - - travis_retry travis_wait 40 mvn install -pl :alfresco-community-repo-integration-test -am -DskipTests -Pall-tas-tests - script: travis_wait 30 mvn -B verify -f packaging/tests/tas-integration/pom.xml -Pall-tas-tests -Denvironment=default -DrunBugs=false - after_success: ${TAS_SCRIPTS}/output_tests_run.sh "packaging/tests/tas-integration" - after_failure: ${TAS_SCRIPTS}/output_logs_for_failures.sh "packaging/tests/tas-integration" - - - name: "Share Services - ShareServicesTestSuite" - if: commit_message !~ /\[skip repo\]/ - install: skip - before_script: - - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:14.4 postgres -c 'max_connections=300' - script: travis_wait 20 mvn -B test -pl :alfresco-share-services -am -Dtest=ShareServicesTestSuite -DfailIfNoTests=false -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco - - - name: "AGS Unit & Integration Tests 01 (PostgreSQL)" - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags\]/ - install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh - script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-postgres -PagsAllTestSuitePt1 -f amps/ags/pom.xml ${LOG_WARN} - - - name: "AGS Integration Tests 02 (PostgreSQL)" - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags\]/ - install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh - script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-postgres -PagsAllTestSuitePt2 -f amps/ags/pom.xml ${LOG_WARN} - - - name: "AGS Integration Tests 03 (PostgreSQL)" - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags\]/ - install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh - script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-postgres -PagsAllTestSuitePt3 -f amps/ags/pom.xml ${LOG_WARN} - - - name: "AGS Unit & Integration Tests 04 (PostgreSQL)" - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags\]/ - install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh - script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-postgres -PagsAllTestSuitePt4 -f amps/ags/pom.xml ${LOG_WARN} - - - name: "AGS Unit & Integration Tests 01 (MySQL) " - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags on MySQL\]/ - install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh - script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-mysql -PagsAllTestSuitePt1 -f amps/ags/pom.xml ${LOG_WARN} - - - name: "AGS Integration Tests 02 (MySQL) " - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags on MySQL\]/ - install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh - script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-mysql -PagsAllTestSuitePt2 -f amps/ags/pom.xml ${LOG_WARN} - - - name: "AGS Integration Tests 03 (MySQL) " - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags\]/ - install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh - script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-mysql -PagsAllTestSuitePt3 -f amps/ags/pom.xml ${LOG_WARN} - - - name: "AGS Unit & Integration Tests 04 (MySQL) " - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/) OR commit_message =~ /\[ags on MySQL\]/ - install: travis_retry travis_wait 40 env REQUIRES_INSTALLED_ARTIFACTS=true bash scripts/travis/build.sh - script: travis_retry travis_wait 80 mvn -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-mysql -PagsAllTestSuitePt4 -f amps/ags/pom.xml ${LOG_WARN} - - - name: "AGS Community Rest API Tests" - if: (branch =~ /(release\/.*$|master)/ AND commit_message !~ /\[skip ags\]/ AND commit_message !~ /\[skip tas\]/) OR (commit_message =~ /\[ags\]/ AND commit_message =~ /\[tas\]/) - install: travis_retry travis_wait 40 env REQUIRES_LOCAL_IMAGES=true bash scripts/travis/build.sh - addons: - artifacts: - paths: - - ./amps/ags/rm-automation/rm-automation-community-rest-api/target/reports/rm-automation-community-rest-api.log - - alfresco.log - - solr.log - target_paths: community/${TRAVIS_BUILD_NUMBER}/${TRAVIS_JOB_NAME} - before_script: - - ${TAS_SCRIPTS}/start-compose.sh ./amps/ags/rm-community/rm-community-repo/docker-compose.yml - - ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8080/alfresco" - - travis_wait 40 mvn -B install -pl :alfresco-governance-services-automation-community-rest-api -am -Pags -Pall-tas-tests -DskipTests - script: travis_wait 40 mvn -B test -pl :alfresco-governance-services-automation-community-rest-api -Dskip.automationtests=false -Pags -Pall-tas-tests - after_script: bash amps/ags/travis/scripts/getLogs.sh - - - name: "Push to Nexus" - stage: release - install: skip - before_script: bash scripts/travis/verify_release_tag.sh - script: travis_wait 40 bash scripts/travis/maven_release.sh - - - name: "Update alfresco-enterprise-repo" - stage: update_downstream - install: skip - script: bash scripts/travis/update_downstream.sh - diff --git a/README.md b/README.md index 55508f952b..1a51925a43 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # alfresco-community-repo -[![Build Status](https://travis-ci.com/Alfresco/alfresco-community-repo.svg?branch=master)](https://travis-ci.com/Alfresco/alfresco-community-repo) +[![Build Status](https://github.com/Alfresco/alfresco-community-repo/actions/workflows/master_release.yml/badge.svg?branch=master)](https://github.com/Alfresco/alfresco-community-repo/actions/workflows/master_release.yml) #### Alfresco Core diff --git a/amps/ags/travis/scripts/getLogs.sh b/amps/ags/ci/scripts/getLogs.sh similarity index 100% rename from amps/ags/travis/scripts/getLogs.sh rename to amps/ags/ci/scripts/getLogs.sh diff --git a/amps/ags/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/utils/AlphabeticalPriorityInterceptor.java b/amps/ags/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/utils/AlphabeticalPriorityInterceptor.java new file mode 100644 index 0000000000..662f7514a9 --- /dev/null +++ b/amps/ags/rm-automation/rm-automation-community-rest-api/src/test/java/org/alfresco/rest/rm/community/utils/AlphabeticalPriorityInterceptor.java @@ -0,0 +1,52 @@ +/* + * #%L + * Alfresco Records Management Module + * %% + * Copyright (C) 2005 - 2023 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * - + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * - + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * - + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * - + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ +package org.alfresco.rest.rm.community.utils; + +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; + +import org.testng.IMethodInstance; +import org.testng.IMethodInterceptor; +import org.testng.ITestContext; + +/** + * A method interceptor that sorts test classes alphabetically. + * + * @author Damian Ujma + */ +public class AlphabeticalPriorityInterceptor implements IMethodInterceptor +{ + @Override + public List intercept(List methods, + ITestContext context) + { + return methods.stream() + .sorted(Comparator.comparing(methodInstance -> methodInstance.getMethod().getTestClass().getName())) + .collect(Collectors.toList()); + } +} \ No newline at end of file diff --git a/amps/ags/rm-automation/rm-automation-community-rest-api/src/test/resources/testng.xml b/amps/ags/rm-automation/rm-automation-community-rest-api/src/test/resources/testng.xml index 26a79d669c..b437f984ee 100644 --- a/amps/ags/rm-automation/rm-automation-community-rest-api/src/test/resources/testng.xml +++ b/amps/ags/rm-automation/rm-automation-community-rest-api/src/test/resources/testng.xml @@ -1,7 +1,10 @@ - + + + + diff --git a/amps/pom.xml b/amps/pom.xml index 3f4705243b..4b023154a3 100644 --- a/amps/pom.xml +++ b/amps/pom.xml @@ -15,7 +15,7 @@ diff --git a/scripts/travis/build.sh b/scripts/ci/build.sh similarity index 100% rename from scripts/travis/build.sh rename to scripts/ci/build.sh diff --git a/scripts/travis/build_functions.sh b/scripts/ci/build_functions.sh similarity index 89% rename from scripts/travis/build_functions.sh rename to scripts/ci/build_functions.sh index be8247265f..cb72ee6852 100644 --- a/scripts/travis/build_functions.sh +++ b/scripts/ci/build_functions.sh @@ -2,18 +2,18 @@ set +vx function isPullRequestBuild() { - test "${TRAVIS_PULL_REQUEST}" != "false" + test "${PULL_REQUEST}" != "false" } function isBranchBuild() { - test "${TRAVIS_PULL_REQUEST}" = "false" + test "${PULL_REQUEST}" = "false" } function cloneRepo() { local REPO="${1}" local TAG_OR_BRANCH="${2}" - printf "Clonning \"%s\" on %s\n" "${TAG_OR_BRANCH}" "${REPO}" + printf "Cloning \"%s\" on %s\n" "${TAG_OR_BRANCH}" "${REPO}" # clone the repository branch/tag pushd "$(dirname "${BASH_SOURCE[0]}")/../../../" >/dev/null @@ -82,15 +82,9 @@ function remoteBranchExists() { function identifyUpstreamSourceBranch() { local UPSTREAM_REPO="${1}" - # if it's a pull request, use the source branch name (if it exists) - if isPullRequestBuild && remoteBranchExists "${UPSTREAM_REPO}" "${TRAVIS_PULL_REQUEST_BRANCH}" ; then - echo "${TRAVIS_PULL_REQUEST_BRANCH}" - exit 0 - fi - # otherwise use the current branch name (or in case of PRs, the target branch name) - if remoteBranchExists "${UPSTREAM_REPO}" "${TRAVIS_BRANCH}" ; then - echo "${TRAVIS_BRANCH}" + if remoteBranchExists "${UPSTREAM_REPO}" "${BRANCH_NAME}" ; then + echo "${BRANCH_NAME}" exit 0 fi @@ -190,4 +184,4 @@ function retieveLatestTag() { rm -rf "${LOCAL_PATH}" } -set -vx +set -vx \ No newline at end of file diff --git a/scripts/travis/cleanup_cache.sh b/scripts/ci/cleanup_cache.sh similarity index 100% rename from scripts/travis/cleanup_cache.sh rename to scripts/ci/cleanup_cache.sh diff --git a/scripts/ci/docker-compose/docker-compose-db.yaml b/scripts/ci/docker-compose/docker-compose-db.yaml new file mode 100644 index 0000000000..1e74d3f65d --- /dev/null +++ b/scripts/ci/docker-compose/docker-compose-db.yaml @@ -0,0 +1,40 @@ +version: "3" + +services: + postgres: + profiles: ["postgres"] + image: postgres:${POSTGRES_VERSION} + environment: + - POSTGRES_PASSWORD=alfresco + - POSTGRES_USER=alfresco + - POSTGRES_DB=alfresco + command: postgres -c max_connections=300 + ports: + - "5433:5432" + mariadb: + profiles: ["mariadb"] + image: mariadb:${MARIADB_VERSION} + command: --transaction-isolation=READ-COMMITTED --max-connections=300 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci + environment: + - MYSQL_ROOT_PASSWORD=alfresco + - MYSQL_USER=alfresco + - MYSQL_DATABASE=alfresco + - MYSQL_PASSWORD=alfresco + ports: + - "3307:3306" + mysql: + profiles: ["mysql"] + image: mysql:${MYSQL_VERSION} + command: --transaction-isolation='READ-COMMITTED' + environment: + - MYSQL_ROOT_PASSWORD=alfresco + - MYSQL_USER=alfresco + - MYSQL_DATABASE=alfresco + - MYSQL_PASSWORD=alfresco + ports: + - "3307:3306" + activemq: + image: alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 + ports: + - "5672:5672" # AMQP + - "61616:61616" # OpenWire \ No newline at end of file diff --git a/scripts/ci/docker-compose/docker-compose.yaml b/scripts/ci/docker-compose/docker-compose.yaml new file mode 100644 index 0000000000..c14fc91734 --- /dev/null +++ b/scripts/ci/docker-compose/docker-compose.yaml @@ -0,0 +1,26 @@ +version: "3" + +services: + transform-core-aio: + profiles: ["with-transform-core-aio"] + image: alfresco/alfresco-transform-core-aio:${TRANSFORMERS_TAG} + environment: + JAVA_OPTS: " -Xms256m -Xmx256m" + ports: + - "8090:8090" + postgres: + image: postgres:14.4 + profiles: ["default", "with-transform-core-aio", "postgres"] + environment: + - POSTGRES_PASSWORD=alfresco + - POSTGRES_USER=alfresco + - POSTGRES_DB=alfresco + command: postgres -c max_connections=300 + ports: + - "5433:5432" + activemq: + profiles: ["default", "with-transform-core-aio", "activemq"] + image: alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 + ports: + - "5672:5672" # AMQP + - "61616:61616" # OpenWire \ No newline at end of file diff --git a/scripts/travis/init.sh b/scripts/ci/init.sh similarity index 87% rename from scripts/travis/init.sh rename to scripts/ci/init.sh index ca1081746b..74637c7d1b 100644 --- a/scripts/travis/init.sh +++ b/scripts/ci/init.sh @@ -5,7 +5,7 @@ set -vex pushd "$(dirname "${BASH_SOURCE[0]}")/../../" # Maven Setup -mkdir -p "${HOME}/.m2" && cp -f .travis.settings.xml "${HOME}/.m2/settings.xml" +mkdir -p "${HOME}/.m2" && cp -f .github/.ci.settings.xml "${HOME}/.m2/settings.xml" find "${HOME}/.m2/repository/" -type d -name "*-SNAPSHOT*" | xargs -r -l rm -rf # Docker Logins diff --git a/scripts/travis/maven_release.sh b/scripts/ci/maven_release.sh similarity index 83% rename from scripts/travis/maven_release.sh rename to scripts/ci/maven_release.sh index d4db16324f..752bed2b1c 100755 --- a/scripts/travis/maven_release.sh +++ b/scripts/ci/maven_release.sh @@ -4,23 +4,19 @@ PS4="\[\e[35m\]+ \[\e[m\]" set -vex pushd "$(dirname "${BASH_SOURCE[0]}")/../../" - # Use full history for release -git checkout -B "${TRAVIS_BRANCH}" -# Add email to link commits to user -git config user.email "${GIT_EMAIL}" +git checkout -B "${BRANCH_NAME}" # Run the release plugin - with "[skip ci]" in the release commit message mvn -B \ -Pall-tas-tests \ -Pags \ - "-Darguments=-Pall-tas-tests -Pags -DskipTests -Dbuild-number=${TRAVIS_BUILD_NUMBER}" \ + "-Darguments=-Pall-tas-tests -Pags -DskipTests -Dbuild-number=${BUILD_NUMBER}" \ release:clean release:prepare release:perform \ -DscmCommentPrefix="[maven-release-plugin][skip ci] " \ -Dusername="${GIT_USERNAME}" \ -Dpassword="${GIT_PASSWORD}" - popd set +vex echo "=========================== Finishing Release Script ==========================" diff --git a/scripts/travis/prepare.sh b/scripts/ci/prepare.sh similarity index 100% rename from scripts/travis/prepare.sh rename to scripts/ci/prepare.sh diff --git a/scripts/ci/tests/AppContext05TestSuite-setup.sh b/scripts/ci/tests/AppContext05TestSuite-setup.sh new file mode 100644 index 0000000000..c8458de3c8 --- /dev/null +++ b/scripts/ci/tests/AppContext05TestSuite-setup.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +echo "=========================== Starting AppContext05TestSuite setup ===========================" +PS4="\[\e[35m\]+ \[\e[m\]" +set -vex +pushd "$(dirname "${BASH_SOURCE[0]}")/../../../" + +mkdir -p "${HOME}/tmp" +cp repository/src/test/resources/realms/alfresco-realm.json "${HOME}/tmp" +echo "HOST_IP=$(hostname -I | cut -f1 -d' ')" >> $GITHUB_ENV +docker run -d -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin -e DB_VENDOR=h2 -p 8999:8080 -e KEYCLOAK_IMPORT=/tmp/alfresco-realm.json -v $HOME/tmp/alfresco-realm.json:/tmp/alfresco-realm.json alfresco/alfresco-identity-service:1.2 + +popd +set +vex +echo "=========================== Finishing AppContext05TestSuite setup ==========================" \ No newline at end of file diff --git a/scripts/travis/update_downstream.sh b/scripts/ci/update_downstream.sh similarity index 79% rename from scripts/travis/update_downstream.sh rename to scripts/ci/update_downstream.sh index b4316a0307..53c9cac26a 100644 --- a/scripts/travis/update_downstream.sh +++ b/scripts/ci/update_downstream.sh @@ -6,9 +6,9 @@ pushd "$(dirname "${BASH_SOURCE[0]}")/../../" source "$(dirname "${BASH_SOURCE[0]}")/build_functions.sh" -#Fetch the latest changes, as Travis will only checkout the PR commit -git fetch origin "${TRAVIS_BRANCH}" -git checkout "${TRAVIS_BRANCH}" +#Fetch the latest changes, as GHA will only checkout the PR commit +git fetch origin "${BRANCH_NAME}" +git checkout "${BRANCH_NAME}" git pull # Retrieve the current Community version - latest tag on the current branch @@ -16,7 +16,7 @@ VERSION="$(git describe --abbrev=0 --tags)" DOWNSTREAM_REPO="github.com/Alfresco/alfresco-enterprise-repo.git" -cloneRepo "${DOWNSTREAM_REPO}" "${TRAVIS_BRANCH}" +cloneRepo "${DOWNSTREAM_REPO}" "${BRANCH_NAME}" cd "$(dirname "${BASH_SOURCE[0]}")/../../../$(basename "${DOWNSTREAM_REPO%.git}")" @@ -33,8 +33,8 @@ git status git --no-pager diff pom.xml git add pom.xml -if [[ "${TRAVIS_COMMIT_MESSAGE}" =~ \[force[^\]]*\] ]]; then - FORCE_TOKEN=$(echo "${TRAVIS_COMMIT_MESSAGE}" | sed "s|^.*\(\[force[^]]*\]\).*$|\1|g") +if [[ "${COMMIT_MESSAGE}" =~ \[force[^\]]*\] ]]; then + FORCE_TOKEN=$(echo "${COMMIT_MESSAGE}" | sed "s|^.*\(\[force[^]]*\]\).*$|\1|g") git commit --allow-empty -m "${FORCE_TOKEN} Update upstream version to ${VERSION}" git push elif git status --untracked-files=no --porcelain | grep -q '^' ; then diff --git a/scripts/travis/verify_release_tag.sh b/scripts/ci/verify_release_tag.sh similarity index 100% rename from scripts/travis/verify_release_tag.sh rename to scripts/ci/verify_release_tag.sh diff --git a/scripts/travis/source_clear.sh b/scripts/travis/source_clear.sh deleted file mode 100755 index babb8e7f3e..0000000000 --- a/scripts/travis/source_clear.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env bash - -echo "=========================== Starting SourceClear Script ===========================" -PS4="\[\e[35m\]+ \[\e[m\]" -set +e -v -x -pushd "$(dirname "${BASH_SOURCE[0]}")/../../" - -mvn -B -q clean install \ - -DskipTests \ - -Dmaven.javadoc.skip=true \ - com.srcclr:srcclr-maven-plugin:scan \ - -Dcom.srcclr.apiToken=${SRCCLR_API_TOKEN} > scan.log - -SUCCESS=$? # this will read exit code of the previous command - -if [ -z "$VERACODE_FAILS_BUILD" ] || [ "$VERACODE_FAILS_BUILD" = false ] ; then - SUCCESS=0 -fi - -cat scan.log | grep -e 'Full Report Details' -e 'Failed' - -popd -set +vex -echo "=========================== Finishing SourceClear Script ==========================" - -exit ${SUCCESS} \ No newline at end of file