diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 212305f32e..f2db960d04 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,36 +19,325 @@ env: JAVA_VERSION: "17" jobs: - prepare: +# prepare: +# runs-on: ubuntu-latest +# steps: +# - uses: actions/checkout@v3 +# - name: "Clean cache" +# run: bash ./scripts/travis/cleanup_cache.sh +# - name: "Prepare environment" +# run: bash ./scripts/travis/prepare.sh + +# veracode: +# runs-on: ubuntu-latest +# needs: +# - prepare +# if: > +# (github.ref_name == 'master' || contains(github.ref_name, 'release')) && +# ! contains(github.event.head_commit.message, '[skip build]') +# steps: +# - uses: actions/checkout@v3 +# - run: mkdir -p $HOME/.m2 +# - run: cp .travis.settings.xml $HOME/.m2 +# - uses: Alfresco/alfresco-build-tools/.github/actions/veracode@master +# with: +# srcclr-api-token: ${{ secrets.SRCCLR_API_TOKEN }} +# +# AllUnitTestsSuite: +# runs-on: ubuntu-latest +# needs: +# - prepare +# steps: +# - uses: actions/checkout@v3 +# - name: "Login to Quay.io" +# uses: docker/login-action@v1 +# with: +# registry: quay.io +# username: ${{ secrets.QUAY_USERNAME }} +# password: ${{ secrets.QUAY_PASSWORD }} +# - name: "Set up Java" +# uses: actions/setup-java@v3 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: "temurin" +# cache: "maven" +# - name: "test" +# run: mvn --settings .travis.settings.xml --file pom.xml -B test -pl core,data-model -am -DfailIfNoTests=false +# - name: "test2" +# run: mvn --settings .travis.settings.xml --file pom.xml -B test -pl "repository,mmt" -am "-Dtest=AllUnitTestsSuite,AllMmtUnitTestSuite" -DfailIfNoTests=false +# +# Repository-AppContext01TestSuite: +# runs-on: ubuntu-latest +# needs: +# - prepare +# steps: +# - uses: actions/checkout@v3 +# - name: "Login to Quay.io" +# uses: docker/login-action@v1 +# with: +# registry: quay.io +# username: ${{ secrets.QUAY_USERNAME }} +# password: ${{ secrets.QUAY_PASSWORD }} +# - name: "Set up Java" +# uses: actions/setup-java@v3 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: "temurin" +# cache: "maven" +# - name: "Get Transformers tag" +# run: | +# echo "TRANSFORMERS_TAG=$(mvn help:evaluate -Dexpression=dependency.alfresco-transform-core.version -q -DforceStdout)" >> $GITHUB_ENV +# - name: "docker build 1" +# run: 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' +# - name: "docker build 2" +# run: docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 +# - name: "docker build 3" +# run: docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:${{ env.TRANSFORMERS_TAG }} +# - name: "Run tests" +# run: mvn --settings .travis.settings.xml --file pom.xml -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 +# +# Repository-AppContext05TestSuite: +# runs-on: ubuntu-latest +# needs: +# - prepare +# steps: +# - uses: actions/checkout@v3 +# - name: "Login to Quay.io" +# uses: docker/login-action@v1 +# with: +# registry: quay.io +# username: ${{ secrets.QUAY_USERNAME }} +# password: ${{ secrets.QUAY_PASSWORD }} +# - name: "Set up Java" +# uses: actions/setup-java@v3 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: "temurin" +# cache: "maven" +# - name: "docker build 1" +# run: 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' +# - name: "docker build 2" +# run: docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 +# - name: "make folder" +# run: mkdir -p "${HOME}/tmp" +# - name: "copy file" +# run: cp repository/src/test/resources/realms/alfresco-realm.json "${HOME}/tmp" +# - name: "set HOST_IP" +# run: | +# echo "HOST_IP=$(hostname -I | cut -f1 -d' ')" >> $GITHUB_ENV +# - name: "docker build 3" +# run: 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 +# - name: "Run tests" +# run: mvn --settings .travis.settings.xml --file pom.xml -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://${{ env.HOST_IP }}:8999/auth" +# +# Repository-SearchTestSuite: +# runs-on: ubuntu-latest +# needs: +# - prepare +# steps: +# - uses: actions/checkout@v3 +# - name: "Login to Quay.io" +# uses: docker/login-action@v1 +# with: +# registry: quay.io +# username: ${{ secrets.QUAY_USERNAME }} +# password: ${{ secrets.QUAY_PASSWORD }} +# - name: "Set up Java" +# uses: actions/setup-java@v3 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: "temurin" +# cache: "maven" +# - name: "docker build 1" +# run: 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' +# - name: "docker build 2" +# run: docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 +# - name: "Run tests" +# run: mvn --settings .travis.settings.xml --file pom.xml -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 +# +# Repository-MariaDB10-2-18-tests: +# runs-on: ubuntu-latest +# needs: +# - prepare +# steps: +# - uses: actions/checkout@v3 +# - name: "Login to Quay.io" +# uses: docker/login-action@v1 +# with: +# registry: quay.io +# username: ${{ secrets.QUAY_USERNAME }} +# password: ${{ secrets.QUAY_PASSWORD }} +# - name: "Set up Java" +# uses: actions/setup-java@v3 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: "temurin" +# cache: "maven" +# - name: "docker build 1" +# run: 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 +# - name: "docker build 2" +# run: docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 +# - name: "Run tests" +# run: mvn --settings .travis.settings.xml --file pom.xml -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 +# +# Remote-api-AppContext01TestSuite: +# runs-on: ubuntu-latest +# needs: +# - prepare +# steps: +# - uses: actions/checkout@v3 +# - name: "Login to Quay.io" +# uses: docker/login-action@v1 +# with: +# registry: quay.io +# username: ${{ secrets.QUAY_USERNAME }} +# password: ${{ secrets.QUAY_PASSWORD }} +# - name: "Set up Java" +# uses: actions/setup-java@v3 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: "temurin" +# cache: "maven" +# - name: "docker build 1" +# run: 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' +# - name: "docker build 2" +# run: docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 +# - name: "Run tests" +# run: mvn --settings .travis.settings.xml --file pom.xml -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 +# +# REST-API-TAS-tests-part1: +# runs-on: ubuntu-latest +# needs: +# - prepare +# steps: +# - uses: actions/checkout@v3 +# - name: "Login to Quay.io" +# uses: docker/login-action@v1 +# with: +# registry: quay.io +# username: ${{ secrets.QUAY_USERNAME }} +# password: ${{ secrets.QUAY_PASSWORD }} +# - name: "Set up Java" +# uses: actions/setup-java@v3 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: "temurin" +# cache: "maven" +# - name: "init" +# run: bash ./scripts/travis/init.sh +# - name: "Set REQUIRES_LOCAL_IMAGES" +# run: | +# echo "REQUIRES_LOCAL_IMAGES=true" >> $GITHUB_ENV +# - name: "build" +# timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} +# run: bash ./scripts/travis/build.sh +# - name: "env1" +# run: ${{ env.TAS_SCRIPTS }}/start-compose.sh ${{ env.TAS_ENVIRONMENT }}/docker-compose-minimal+transforms.yml +# - name: "env2" +# run: ${{ env.TAS_SCRIPTS }}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" +# - name: "Run tests" +# timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} +# run: mvn --settings .travis.settings.xml --file packaging/tests/tas-restapi/pom.xml -B verify -Pall-tas-tests,run-restapi-part1 -Denvironment=default -DrunBugs=false +# +# AGS-Unit-And_Integration-Tests-01-PostgreSQL: +# runs-on: ubuntu-latest +# needs: +# - prepare +# steps: +# - uses: actions/checkout@v3 +# - name: "Login to Quay.io" +# uses: docker/login-action@v1 +# with: +# registry: quay.io +# username: ${{ secrets.QUAY_USERNAME }} +# password: ${{ secrets.QUAY_PASSWORD }} +# - name: "Set up Java" +# uses: actions/setup-java@v3 +# with: +# java-version: ${{ env.JAVA_VERSION }} +# distribution: "temurin" +# cache: "maven" +# - name: "init" +# run: bash ./scripts/travis/init.sh +# - name: "Set REQUIRES_LOCAL_IMAGES" +# run: | +# echo "REQUIRES_LOCAL_IMAGES=true" >> $GITHUB_ENV +# - name: "build" +# timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} +# run: bash ./scripts/travis/build.sh +# - name: "verify" +# timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} +# run: mvn --settings .travis.settings.xml --file amps/ags/pom.xml -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-postgres -PagsAllTestSuitePt1 ${LOG_WARN} + + AGS-Community-Rest-API-Tests: runs-on: ubuntu-latest + if: > + (github.ref_name == 'master' || contains(github.ref_name, 'release/') || contains(github.event.head_commit.message, '[ags]') && + ! contains(github.event.head_commit.message, '[skip ags]') steps: - uses: actions/checkout@v3 - - name: "Clean cache" - run: bash ./scripts/travis/cleanup_cache.sh - - name: "Prepare environment" - run: bash ./scripts/travis/prepare.sh + - name: "Login to Docker Hub" + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: "Login to Quay.io" + uses: docker/login-action@v1 + with: + registry: quay.io + username: ${{ secrets.QUAY_USERNAME }} + password: ${{ secrets.QUAY_PASSWORD }} + - name: "Set up Java" + uses: actions/setup-java@v3 + with: + java-version: ${{ env.JAVA_VERSION }} + distribution: "temurin" + cache: "maven" + - name: "build" + timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} + run: bash ./scripts/travis/build.sh + env: + REQUIRES_LOCAL_IMAGES: true + - name: "env1" + run: ${{ env.TAS_SCRIPTS }}/start-compose.sh ./amps/ags/rm-community/rm-community-repo/docker-compose.yml + - name: "env2" + run: ${{ env.TAS_SCRIPTS }}/wait-for-alfresco-start.sh "http://localhost:8080/alfresco" + - name: "test" + timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} + run: mvn --settings .travis.settings.xml -B test -pl :alfresco-governance-services-automation-community-rest-api -am -DfailIfNoTests=false -Dskip.automationtests=false -Pags + - run: bash amps/ags/travis/scripts/getLogs.sh + if: ${{ always() }} + - run: mkdir -p deploy_dir/community/${{ github.run_number }}/AGS-Community-Rest-API-Tests + if: ${{ always() }} + - run: mv "alfresco.log" "deploy_dir/community/${{ github.run_number }}/AGS-Community-Rest-API-Tests" + if: ${{ always() }} + - run: mv "solr.log" "deploy_dir/community/${{ github.run_number }}/AGS-Community-Rest-API-Tests" + if: ${{ always() }} + - run: mv "./amps/ags/rm-automation/rm-automation-community-rest-api/target/reports" "deploy_dir/community/${{ github.run_number }}/AGS-Community-Rest-API-Tests" + if: ${{ always() }} + - 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 build artifacts to Amazon S3" + if: ${{ always() }} + run: aws s3 cp --recursive ./deploy_dir s3://ags-travis-artifacts - veracode: + Push-to-Nexus: runs-on: ubuntu-latest - needs: - - prepare if: > - (github.ref_name == 'master' || contains(github.ref_name, 'release')) && - ! contains(github.event.head_commit.message, '[skip build]') + (github.ref_name == 'master' || contains(github.ref_name, 'release/')) && + github.event_name != 'pull_request' && + ! contains(github.event.head_commit.message, '[no release]') + needs: + - AGS-Community-Rest-API-Tests steps: - uses: actions/checkout@v3 - run: mkdir -p $HOME/.m2 - run: cp .travis.settings.xml $HOME/.m2 - - uses: Alfresco/alfresco-build-tools/.github/actions/veracode@master - with: - srcclr-api-token: ${{ secrets.SRCCLR_API_TOKEN }} - - AllUnitTestsSuite: - runs-on: ubuntu-latest - needs: - - prepare - steps: - - uses: actions/checkout@v3 - name: "Login to Quay.io" uses: docker/login-action@v1 with: @@ -61,210 +350,33 @@ jobs: java-version: ${{ env.JAVA_VERSION }} distribution: "temurin" cache: "maven" - - name: "test" - run: mvn --settings .travis.settings.xml --file pom.xml -B test -pl core,data-model -am -DfailIfNoTests=false - - name: "test2" - run: mvn --settings .travis.settings.xml --file pom.xml -B test -pl "repository,mmt" -am "-Dtest=AllUnitTestsSuite,AllMmtUnitTestSuite" -DfailIfNoTests=false - - Repository-AppContext01TestSuite: + - uses: Alfresco/alfresco-build-tools/.github/actions/configure-git-author@v1.12.0 + with: + username: ${{ secrets.BOT_GITHUB_USERNAME }} + email: ${{ secrets.BOT_GITHUB_EMAIL }} + - name: "Verify release tag" + run: bash ./scripts/travis/verify_release_tag.sh + - name: "Release" + run: bash ./scripts/gh-actions/maven_release.sh + env: + BUILD_NUMBER: ${{ github.run_number }} + GIT_USERNAME: ${{ secrets.BOT_GITHUB_USERNAME }} + GIT_PASSWORD: ${{ secrets.BOT_GITHUB_PASSWORD }} + Update-downstream: runs-on: ubuntu-latest + if: > + (github.ref_name == 'master' || contains(github.ref_name, 'release/')) && + github.event_name != 'pull_request' && + ! contains(github.event.head_commit.message, '[no downstream]') needs: - - prepare + - AGS-Community-Rest-API-Tests steps: - uses: actions/checkout@v3 - - name: "Login to Quay.io" - uses: docker/login-action@v1 - with: - registry: quay.io - username: ${{ secrets.QUAY_USERNAME }} - password: ${{ secrets.QUAY_PASSWORD }} - - name: "Set up Java" - uses: actions/setup-java@v3 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: "temurin" - cache: "maven" - - name: "Get Transformers tag" - run: | - echo "TRANSFORMERS_TAG=$(mvn help:evaluate -Dexpression=dependency.alfresco-transform-core.version -q -DforceStdout)" >> $GITHUB_ENV - - name: "docker build 1" - run: 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' - - name: "docker build 2" - run: docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - - name: "docker build 3" - run: docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:${{ env.TRANSFORMERS_TAG }} - - name: "Run tests" - run: mvn --settings .travis.settings.xml --file pom.xml -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 - - Repository-AppContext05TestSuite: - runs-on: ubuntu-latest - needs: - - prepare - steps: - - uses: actions/checkout@v3 - - name: "Login to Quay.io" - uses: docker/login-action@v1 - with: - registry: quay.io - username: ${{ secrets.QUAY_USERNAME }} - password: ${{ secrets.QUAY_PASSWORD }} - - name: "Set up Java" - uses: actions/setup-java@v3 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: "temurin" - cache: "maven" - - name: "docker build 1" - run: 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' - - name: "docker build 2" - run: docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - - name: "make folder" - run: mkdir -p "${HOME}/tmp" - - name: "copy file" - run: cp repository/src/test/resources/realms/alfresco-realm.json "${HOME}/tmp" - - name: "set HOST_IP" - run: | - echo "HOST_IP=$(hostname -I | cut -f1 -d' ')" >> $GITHUB_ENV - - name: "docker build 3" - run: 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 - - name: "Run tests" - run: mvn --settings .travis.settings.xml --file pom.xml -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://${{ env.HOST_IP }}:8999/auth" - - Repository-SearchTestSuite: - runs-on: ubuntu-latest - needs: - - prepare - steps: - - uses: actions/checkout@v3 - - name: "Login to Quay.io" - uses: docker/login-action@v1 - with: - registry: quay.io - username: ${{ secrets.QUAY_USERNAME }} - password: ${{ secrets.QUAY_PASSWORD }} - - name: "Set up Java" - uses: actions/setup-java@v3 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: "temurin" - cache: "maven" - - name: "docker build 1" - run: 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' - - name: "docker build 2" - run: docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - - name: "Run tests" - run: mvn --settings .travis.settings.xml --file pom.xml -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 - - Repository-MariaDB10-2-18-tests: - runs-on: ubuntu-latest - needs: - - prepare - steps: - - uses: actions/checkout@v3 - - name: "Login to Quay.io" - uses: docker/login-action@v1 - with: - registry: quay.io - username: ${{ secrets.QUAY_USERNAME }} - password: ${{ secrets.QUAY_PASSWORD }} - - name: "Set up Java" - uses: actions/setup-java@v3 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: "temurin" - cache: "maven" - - name: "docker build 1" - run: 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 - - name: "docker build 2" - run: docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - - name: "Run tests" - run: mvn --settings .travis.settings.xml --file pom.xml -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 - - Remote-api-AppContext01TestSuite: - runs-on: ubuntu-latest - needs: - - prepare - steps: - - uses: actions/checkout@v3 - - name: "Login to Quay.io" - uses: docker/login-action@v1 - with: - registry: quay.io - username: ${{ secrets.QUAY_USERNAME }} - password: ${{ secrets.QUAY_PASSWORD }} - - name: "Set up Java" - uses: actions/setup-java@v3 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: "temurin" - cache: "maven" - - name: "docker build 1" - run: 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' - - name: "docker build 2" - run: docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.17.1-jre11-rockylinux8 - - name: "Run tests" - run: mvn --settings .travis.settings.xml --file pom.xml -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 - - REST-API-TAS-tests-part1: - runs-on: ubuntu-latest - needs: - - prepare - steps: - - uses: actions/checkout@v3 - - name: "Login to Quay.io" - uses: docker/login-action@v1 - with: - registry: quay.io - username: ${{ secrets.QUAY_USERNAME }} - password: ${{ secrets.QUAY_PASSWORD }} - - name: "Set up Java" - uses: actions/setup-java@v3 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: "temurin" - cache: "maven" - - name: "init" - run: bash ./scripts/travis/init.sh - - name: "Set REQUIRES_LOCAL_IMAGES" - run: | - echo "REQUIRES_LOCAL_IMAGES=true" >> $GITHUB_ENV - - name: "build" - timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} - run: bash ./scripts/travis/build.sh - - name: "env1" - run: ${{ env.TAS_SCRIPTS }}/start-compose.sh ${{ env.TAS_ENVIRONMENT }}/docker-compose-minimal+transforms.yml - - name: "env2" - run: ${{ env.TAS_SCRIPTS }}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" - - name: "Run tests" - timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} - run: mvn --settings .travis.settings.xml --file packaging/tests/tas-restapi/pom.xml -B verify -Pall-tas-tests,run-restapi-part1 -Denvironment=default -DrunBugs=false - - AGS-Unit-And_Integration-Tests-01-PostgreSQL: - runs-on: ubuntu-latest - needs: - - prepare - steps: - - uses: actions/checkout@v3 - - name: "Login to Quay.io" - uses: docker/login-action@v1 - with: - registry: quay.io - username: ${{ secrets.QUAY_USERNAME }} - password: ${{ secrets.QUAY_PASSWORD }} - - name: "Set up Java" - uses: actions/setup-java@v3 - with: - java-version: ${{ env.JAVA_VERSION }} - distribution: "temurin" - cache: "maven" - - name: "init" - run: bash ./scripts/travis/init.sh - - name: "Set REQUIRES_LOCAL_IMAGES" - run: | - echo "REQUIRES_LOCAL_IMAGES=true" >> $GITHUB_ENV - - name: "build" - timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} - run: bash ./scripts/travis/build.sh - - name: "verify" - timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} - run: mvn --settings .travis.settings.xml --file amps/ags/pom.xml -B verify -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Pags -Pstart-postgres -PagsAllTestSuitePt1 ${LOG_WARN} + - run: mkdir -p $HOME/.m2 + - run: cp .travis.settings.xml $HOME/.m2 + - run: bash ./scripts/gh-actions/update_downstream.sh + env: + BRANCH: ${{ github.ref_name }} + COMMIT_MESSAGE: ${{ github.event.head_commit.message }} + GIT_USERNAME: ${{ secrets.BOT_GITHUB_USERNAME }} + GIT_PASSWORD: ${{ secrets.BOT_GITHUB_PASSWORD }} \ No newline at end of file diff --git a/scripts/gh-actions/build_functions.sh b/scripts/gh-actions/build_functions.sh new file mode 100644 index 0000000000..5aedd3eb65 --- /dev/null +++ b/scripts/gh-actions/build_functions.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +set +vx + +function cloneRepo() { + local REPO="${1}" + local TAG_OR_BRANCH="${2}" + + printf "Clonning \"%s\" on %s\n" "${TAG_OR_BRANCH}" "${REPO}" + + # clone the repository branch/tag + pushd "$(dirname "${BASH_SOURCE[0]}")/../../../" >/dev/null + + rm -rf "$(basename "${REPO%.git}")" + + git clone -b "${TAG_OR_BRANCH}" --depth=1 "https://${GIT_USERNAME}:${GIT_PASSWORD}@${REPO}" + + popd >/dev/null +} + +set -vx diff --git a/scripts/gh-actions/maven_release.sh b/scripts/gh-actions/maven_release.sh new file mode 100755 index 0000000000..8067de6919 --- /dev/null +++ b/scripts/gh-actions/maven_release.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +echo "=========================== Starting Release Script ===========================" +PS4="\[\e[35m\]+ \[\e[m\]" +set -vex +pushd "$(dirname "${BASH_SOURCE[0]}")/../../" + +# 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=${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/gh-actions/update_downstream.sh b/scripts/gh-actions/update_downstream.sh new file mode 100644 index 0000000000..65df8e489f --- /dev/null +++ b/scripts/gh-actions/update_downstream.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash +echo "=========================== Starting Update Downstream Script ===========================" +PS4="\[\e[35m\]+ \[\e[m\]" +set -vex +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 "${BRANCH}" +git checkout "${BRANCH}" +git pull + +# Retrieve the current Community version - latest tag on the current branch +VERSION="$(git describe --abbrev=0 --tags)" + +DOWNSTREAM_REPO="github.com/Alfresco/alfresco-enterprise-repo.git" + +cloneRepo "${DOWNSTREAM_REPO}" "${BRANCH}" + +cd "$(dirname "${BASH_SOURCE[0]}")/../../../$(basename "${DOWNSTREAM_REPO%.git}")" + +# Update parent version +mvn -B versions:update-parent versions:commit "-DparentVersion=[${VERSION}]" + +# Update dependency version +mvn -B versions:set-property versions:commit \ + -Dproperty=dependency.alfresco-community-repo.version \ + "-DnewVersion=${VERSION}" + +# Commit changes +git status +git --no-pager diff pom.xml +git add pom.xml + +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 + git commit -m "Update upstream version to ${VERSION}" + git push +else + echo "Dependencies are already up to date." + git status +fi + + +popd +set +vex +echo "=========================== Finishing Update Downstream Script ==========================" +