ACS-5371 Refactor #6342
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} | |
CI_WORKSPACE: ${{ github.workspace }} | |
TAS_ENVIRONMENT: ./packaging/tests/environment | |
TAS_SCRIPTS: ../alfresco-community-repo/packaging/tests/scripts | |
AUTH0_CLIENT_ID: ${{ secrets.AUTH0_OIDC_ADMIN_CLIENT_ID }} | |
AUTH0_CLIENT_SECRET: ${{ secrets.AUTH0_OIDC_CLIENT_SECRET }} | |
AUTH0_ADMIN_PASSWORD: ${{ secrets.AUTH0_OIDC_ADMIN_PASSWORD }} | |
# Report Portal settings | |
RP_LAUNCH_PREFIX: "${{ github.workflow }} - ${{ github.job }}" | |
RP_PROJECT: alfresco-backend | |
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@v4 | |
with: | |
fetch-depth: 0 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- id: changed-files | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
with: | |
write-list-to-env: true | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- name: "Init" | |
run: bash ./scripts/ci/init.sh | |
- name: "Prepare maven cache and check compilation" | |
run: bash ./scripts/ci/prepare.sh | |
- name: "Clean Maven cache" | |
run: bash ./scripts/ci/cleanup_cache.sh | |
veracode_sca: | |
name: "Source Clear Scan (SCA)" | |
runs-on: ubuntu-latest | |
needs: [prepare] | |
if: > | |
(github.ref_name == 'master' || startsWith(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@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- name: "Init" | |
run: bash ./scripts/ci/init.sh | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
continue-on-error: true | |
with: | |
srcclr-api-token: ${{ secrets.SRCCLR_API_TOKEN }} | |
- name: "Clean Maven cache" | |
run: bash ./scripts/ci/cleanup_cache.sh | |
veracode_sast: | |
name: "Pipeline SAST Scan" | |
runs-on: ubuntu-latest | |
needs: [prepare] | |
if: > | |
(github.ref_name == 'master' || startsWith(github.ref_name, 'release/') || github.event_name == 'pull_request') && | |
github.actor != 'dependabot[bot]' && | |
!contains(github.event.head_commit.message, '[skip tests]') && | |
!contains(github.event.head_commit.message, '[force') | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
with: | |
token: ${{ secrets.BOT_GITHUB_TOKEN }} | |
repository: "Alfresco/veracode-baseline-archive" | |
file-path: "alfresco-community-repo/alfresco-community-repo-baseline.json" | |
target: "baseline.json" | |
- name: "Build" | |
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} | |
run: | | |
bash ./scripts/ci/init.sh | |
bash ./scripts/ci/build.sh | |
- name: "Run SAST Scan" | |
uses: veracode/[email protected] | |
with: | |
vid: ${{ secrets.VERACODE_API_ID }} | |
vkey: ${{ secrets.VERACODE_API_KEY }} | |
file: "packaging/war/target/alfresco.war" | |
fail_build: true | |
project_name: alfresco-community-repo | |
issue_details: true | |
veracode_policy_name: Alfresco Default | |
summary_output: true | |
summary_output_file: results.json | |
summary_display: true | |
baseline_file: baseline.json | |
- name: Upload scan result | |
if: success() || failure() | |
run: zip readable_output.zip results.json | |
- name: Upload Artifact | |
if: success() || failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Veracode Pipeline-Scan Results (Human Readable) | |
path: readable_output.zip | |
- name: "Clean Maven cache" | |
run: bash ./scripts/ci/cleanup_cache.sh | |
pmd_scan: | |
name: "PMD Scan" | |
runs-on: ubuntu-latest | |
needs: [prepare] | |
if: > | |
github.event_name == 'pull_request' && | |
!contains(github.event.head_commit.message, '[skip pmd]') && | |
!contains(github.event.head_commit.message, '[skip tests]') && | |
!contains(github.event.head_commit.message, '[force]') | |
steps: | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/[email protected] | |
with: | |
classpath-build-command: "mvn test-compile -ntp -Pags -pl \"-:alfresco-community-repo-docker\"" | |
all_unit_tests_suite: | |
name: ${{ matrix.testName }} - 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') | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- testName: Core | |
testModule: core | |
testAttributes: "-Dtest=AllCoreUnitTestSuite" | |
- testName: Data-Model | |
testModule: data-model | |
testAttributes: "-Dtest=AllDataModelUnitTestSuite" | |
- testName: Repository | |
testModule: repository | |
testAttributes: "-Dtest=AllUnitTestsSuite" | |
- testName: Mmt | |
testModule: mmt | |
testAttributes: "-Dtest=AllMmtUnitTestSuite" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- name: "Init" | |
run: bash ./scripts/ci/init.sh | |
- name: "Prepare Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-prepare | |
with: | |
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} - ${{ matrix.testModule }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-use-static-launch-name: true | |
continue-on-error: true | |
- name: "Add GitHub Step Summary" | |
if: github.ref_name == 'master' | |
env: | |
RP_ENABLED: ${{ steps.rp-prepare.outputs.enabled }} | |
RP_KEY: ${{ steps.rp-prepare.outputs.key }} | |
RP_URL: ${{ steps.rp-prepare.outputs.url }} | |
run: bash scripts/ci/add_step_summary.sh | |
continue-on-error: true | |
- name: "Run tests" | |
id: run-tests | |
env: | |
RP_OPTS: ${{ github.ref_name == 'master' && steps.rp-prepare.outputs.mvn-opts || '' }} | |
run: | | |
eval "args=($RP_OPTS)" | |
mvn -B test -pl ${{ matrix.testModule }} -am ${{ matrix.testAttributes }} -DfailIfNoTests=false "${args[@]}" | |
continue-on-error: true | |
- name: "Update GitHub Step Summary" | |
if: github.ref_name == 'master' | |
run: | | |
echo "#### ⏱ After Tests: $(date -u +'%Y-%m-%d %H:%M:%S%:z')" >> $GITHUB_STEP_SUMMARY | |
continue-on-error: true | |
- name: "Summarize Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-summarize | |
with: | |
tests-outcome: ${{ steps.run-tests.outcome }} | |
rp-launch-key: ${{ steps.rp-prepare.outputs.key }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
continue-on-error: true | |
- name: "Exit on failure" | |
if: steps.run-tests.outcome != 'success' | |
run: | | |
echo "::error title=run-tests::Tests failed: re-throwing on error." | |
exit 1 | |
- 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@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- 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" | |
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} | |
run: docker compose -f ./scripts/ci/docker-compose/docker-compose.yaml --profile ${{ matrix.compose-profile }} up -d | |
- name: "Prepare Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-prepare | |
with: | |
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} - ${{ matrix.testSuite }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-use-static-launch-name: true | |
continue-on-error: true | |
- name: "Add GitHub Step Summary" | |
if: github.ref_name == 'master' | |
env: | |
RP_ENABLED: ${{ steps.rp-prepare.outputs.enabled }} | |
RP_KEY: ${{ steps.rp-prepare.outputs.key }} | |
RP_URL: ${{ steps.rp-prepare.outputs.url }} | |
run: bash scripts/ci/add_step_summary.sh | |
continue-on-error: true | |
- name: "Run tests" | |
id: run-tests | |
env: | |
RP_OPTS: ${{ github.ref_name == 'master' && steps.rp-prepare.outputs.mvn-opts || '' }} | |
run: | | |
eval "args=($RP_OPTS)" | |
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 "${args[@]}" | |
continue-on-error: true | |
- name: "Update GitHub Step Summary" | |
if: github.ref_name == 'master' | |
run: | | |
echo "#### ⏱ After Tests: $(date -u +'%Y-%m-%d %H:%M:%S%:z')" >> $GITHUB_STEP_SUMMARY | |
continue-on-error: true | |
- name: "Summarize Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-summarize | |
with: | |
tests-outcome: ${{ steps.run-tests.outcome }} | |
rp-launch-key: ${{ steps.rp-prepare.outputs.key }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
continue-on-error: true | |
- name: "Exit on failure" | |
if: steps.run-tests.outcome != 'success' | |
run: | | |
echo "::error title=run-tests::Tests failed: re-throwing on error." | |
exit 1 | |
- 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' || startsWith(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@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- 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: "Prepare Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-prepare | |
with: | |
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} - ${{ matrix.version }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-use-static-launch-name: true | |
continue-on-error: true | |
- name: "Add GitHub Step Summary" | |
if: github.ref_name == 'master' | |
env: | |
RP_ENABLED: ${{ steps.rp-prepare.outputs.enabled }} | |
RP_KEY: ${{ steps.rp-prepare.outputs.key }} | |
RP_URL: ${{ steps.rp-prepare.outputs.url }} | |
run: bash scripts/ci/add_step_summary.sh | |
continue-on-error: true | |
- name: "Run tests" | |
id: run-tests | |
env: | |
RP_OPTS: ${{ github.ref_name == 'master' && steps.rp-prepare.outputs.mvn-opts || '' }} | |
run: | | |
eval "args=($RP_OPTS)" | |
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 "${args[@]}" | |
continue-on-error: true | |
- name: "Update GitHub Step Summary" | |
if: github.ref_name == 'master' | |
run: | | |
echo "#### ⏱ After Tests: $(date -u +'%Y-%m-%d %H:%M:%S%:z')" >> $GITHUB_STEP_SUMMARY | |
continue-on-error: true | |
- name: "Summarize Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-summarize | |
with: | |
tests-outcome: ${{ steps.run-tests.outcome }} | |
rp-launch-key: ${{ steps.rp-prepare.outputs.key }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
continue-on-error: true | |
- name: "Exit on failure" | |
if: steps.run-tests.outcome != 'success' | |
run: | | |
echo "::error title=run-tests::Tests failed: re-throwing on error." | |
exit 1 | |
- 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' || startsWith(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@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- 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: "Prepare Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-prepare | |
with: | |
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-use-static-launch-name: true | |
continue-on-error: true | |
- name: "Add GitHub Step Summary" | |
if: github.ref_name == 'master' | |
env: | |
RP_ENABLED: ${{ steps.rp-prepare.outputs.enabled }} | |
RP_KEY: ${{ steps.rp-prepare.outputs.key }} | |
RP_URL: ${{ steps.rp-prepare.outputs.url }} | |
run: bash scripts/ci/add_step_summary.sh | |
continue-on-error: true | |
- name: "Run tests" | |
id: run-tests | |
env: | |
RP_OPTS: ${{ github.ref_name == 'master' && steps.rp-prepare.outputs.mvn-opts || '' }} | |
run: | | |
eval "args=($RP_OPTS)" | |
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 "${args[@]}" | |
continue-on-error: true | |
- name: "Update GitHub Step Summary" | |
if: github.ref_name == 'master' | |
run: | | |
echo "#### ⏱ After Tests: $(date -u +'%Y-%m-%d %H:%M:%S%:z')" >> $GITHUB_STEP_SUMMARY | |
continue-on-error: true | |
- name: "Summarize Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-summarize | |
with: | |
tests-outcome: ${{ steps.run-tests.outcome }} | |
rp-launch-key: ${{ steps.rp-prepare.outputs.key }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
continue-on-error: true | |
- name: "Exit on failure" | |
if: steps.run-tests.outcome != 'success' | |
run: | | |
echo "::error title=run-tests::Tests failed: re-throwing on error." | |
exit 1 | |
- 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' || startsWith(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@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- 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: "Prepare Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-prepare | |
with: | |
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-use-static-launch-name: true | |
continue-on-error: true | |
- name: "Add GitHub Step Summary" | |
if: github.ref_name == 'master' | |
env: | |
RP_ENABLED: ${{ steps.rp-prepare.outputs.enabled }} | |
RP_KEY: ${{ steps.rp-prepare.outputs.key }} | |
RP_URL: ${{ steps.rp-prepare.outputs.url }} | |
run: bash scripts/ci/add_step_summary.sh | |
continue-on-error: true | |
- name: "Run tests" | |
id: run-tests | |
env: | |
RP_OPTS: ${{ github.ref_name == 'master' && steps.rp-prepare.outputs.mvn-opts || '' }} | |
run: | | |
eval "args=($RP_OPTS)" | |
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 "${args[@]}" | |
continue-on-error: true | |
- name: "Update GitHub Step Summary" | |
if: github.ref_name == 'master' | |
run: | | |
echo "#### ⏱ After Tests: $(date -u +'%Y-%m-%d %H:%M:%S%:z')" >> $GITHUB_STEP_SUMMARY | |
continue-on-error: true | |
- name: "Summarize Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-summarize | |
with: | |
tests-outcome: ${{ steps.run-tests.outcome }} | |
rp-launch-key: ${{ steps.rp-prepare.outputs.key }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
continue-on-error: true | |
- name: "Exit on failure" | |
if: steps.run-tests.outcome != 'success' | |
run: | | |
echo "::error title=run-tests::Tests failed: re-throwing on error." | |
exit 1 | |
- name: "Clean Maven cache" | |
run: bash ./scripts/ci/cleanup_cache.sh | |
repository_postgresql_13_12_tests: | |
name: "Repository - PostgreSQL 13.12 tests" | |
runs-on: ubuntu-latest | |
needs: [prepare] | |
if: > | |
(((github.ref_name == 'master' || startsWith(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@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- name: "Init" | |
run: bash ./scripts/ci/init.sh | |
- name: "Run PostgreSQL 13.12 database" | |
run: docker compose -f ./scripts/ci/docker-compose/docker-compose-db.yaml --profile postgres up -d | |
env: | |
POSTGRES_VERSION: 13.12 | |
- name: "Prepare Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-prepare | |
with: | |
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-use-static-launch-name: true | |
continue-on-error: true | |
- name: "Add GitHub Step Summary" | |
if: github.ref_name == 'master' | |
env: | |
RP_ENABLED: ${{ steps.rp-prepare.outputs.enabled }} | |
RP_KEY: ${{ steps.rp-prepare.outputs.key }} | |
RP_URL: ${{ steps.rp-prepare.outputs.url }} | |
run: bash scripts/ci/add_step_summary.sh | |
continue-on-error: true | |
- name: "Run tests" | |
id: run-tests | |
env: | |
RP_OPTS: ${{ github.ref_name == 'master' && steps.rp-prepare.outputs.mvn-opts || '' }} | |
run: | | |
eval "args=($RP_OPTS)" | |
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 "${args[@]}" | |
continue-on-error: true | |
- name: "Update GitHub Step Summary" | |
if: github.ref_name == 'master' | |
run: | | |
echo "#### ⏱ After Tests: $(date -u +'%Y-%m-%d %H:%M:%S%:z')" >> $GITHUB_STEP_SUMMARY | |
continue-on-error: true | |
- name: "Summarize Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-summarize | |
with: | |
tests-outcome: ${{ steps.run-tests.outcome }} | |
rp-launch-key: ${{ steps.rp-prepare.outputs.key }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
continue-on-error: true | |
- name: "Exit on failure" | |
if: steps.run-tests.outcome != 'success' | |
run: | | |
echo "::error title=run-tests::Tests failed: re-throwing on error." | |
exit 1 | |
- name: "Clean Maven cache" | |
run: bash ./scripts/ci/cleanup_cache.sh | |
repository_postgresql_14_9_tests: | |
name: "Repository - PostgreSQL 14.9 tests" | |
runs-on: ubuntu-latest | |
needs: [prepare] | |
if: > | |
(((github.ref_name == 'master' || startsWith(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@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- name: "Init" | |
run: bash ./scripts/ci/init.sh | |
- name: "Run PostgreSQL 14.9 database" | |
run: docker compose -f ./scripts/ci/docker-compose/docker-compose-db.yaml --profile postgres up -d | |
env: | |
POSTGRES_VERSION: 14.9 | |
- name: "Prepare Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-prepare | |
with: | |
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-use-static-launch-name: true | |
continue-on-error: true | |
- name: "Add GitHub Step Summary" | |
if: github.ref_name == 'master' | |
env: | |
RP_ENABLED: ${{ steps.rp-prepare.outputs.enabled }} | |
RP_KEY: ${{ steps.rp-prepare.outputs.key }} | |
RP_URL: ${{ steps.rp-prepare.outputs.url }} | |
run: bash scripts/ci/add_step_summary.sh | |
continue-on-error: true | |
- name: "Run tests" | |
id: run-tests | |
env: | |
RP_OPTS: ${{ github.ref_name == 'master' && steps.rp-prepare.outputs.mvn-opts || '' }} | |
run: | | |
eval "args=($RP_OPTS)" | |
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 "${args[@]}" | |
continue-on-error: true | |
- name: "Update GitHub Step Summary" | |
if: github.ref_name == 'master' | |
run: | | |
echo "#### ⏱ After Tests: $(date -u +'%Y-%m-%d %H:%M:%S%:z')" >> $GITHUB_STEP_SUMMARY | |
continue-on-error: true | |
- name: "Summarize Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-summarize | |
with: | |
tests-outcome: ${{ steps.run-tests.outcome }} | |
rp-launch-key: ${{ steps.rp-prepare.outputs.key }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
continue-on-error: true | |
- name: "Exit on failure" | |
if: steps.run-tests.outcome != 'success' | |
run: | | |
echo "::error title=run-tests::Tests failed: re-throwing on error." | |
exit 1 | |
- name: "Clean Maven cache" | |
run: bash ./scripts/ci/cleanup_cache.sh | |
repository_postgresql_15_4_tests: | |
name: "Repository - PostgreSQL 15.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@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- name: "Init" | |
run: bash ./scripts/ci/init.sh | |
- name: "Run PostgreSQL 15.4 database" | |
run: docker compose -f ./scripts/ci/docker-compose/docker-compose-db.yaml --profile postgres up -d | |
env: | |
POSTGRES_VERSION: 15.4 | |
- name: "Prepare Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-prepare | |
with: | |
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-use-static-launch-name: true | |
continue-on-error: true | |
- name: "Add GitHub Step Summary" | |
if: github.ref_name == 'master' | |
env: | |
RP_ENABLED: ${{ steps.rp-prepare.outputs.enabled }} | |
RP_KEY: ${{ steps.rp-prepare.outputs.key }} | |
RP_URL: ${{ steps.rp-prepare.outputs.url }} | |
run: bash scripts/ci/add_step_summary.sh | |
continue-on-error: true | |
- name: "Run tests" | |
id: run-tests | |
env: | |
RP_OPTS: ${{ github.ref_name == 'master' && steps.rp-prepare.outputs.mvn-opts || '' }} | |
run: | | |
eval "args=($RP_OPTS)" | |
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 "${args[@]}" | |
continue-on-error: true | |
- name: "Update GitHub Step Summary" | |
if: github.ref_name == 'master' | |
run: | | |
echo "#### ⏱ After Tests: $(date -u +'%Y-%m-%d %H:%M:%S%:z')" >> $GITHUB_STEP_SUMMARY | |
continue-on-error: true | |
- name: "Summarize Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-summarize | |
with: | |
tests-outcome: ${{ steps.run-tests.outcome }} | |
rp-launch-key: ${{ steps.rp-prepare.outputs.key }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
continue-on-error: true | |
- name: "Exit on failure" | |
if: steps.run-tests.outcome != 'success' | |
run: | | |
echo "::error title=run-tests::Tests failed: re-throwing on error." | |
exit 1 | |
- 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@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- 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: "Prepare Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-prepare | |
with: | |
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-use-static-launch-name: true | |
continue-on-error: true | |
- name: "Add GitHub Step Summary" | |
if: github.ref_name == 'master' | |
env: | |
RP_ENABLED: ${{ steps.rp-prepare.outputs.enabled }} | |
RP_KEY: ${{ steps.rp-prepare.outputs.key }} | |
RP_URL: ${{ steps.rp-prepare.outputs.url }} | |
run: bash scripts/ci/add_step_summary.sh | |
continue-on-error: true | |
- name: "Run tests" | |
id: run-tests | |
env: | |
RP_OPTS: ${{ github.ref_name == 'master' && steps.rp-prepare.outputs.mvn-opts || '' }} | |
run: | | |
eval "args=($RP_OPTS)" | |
mvn -B test -pl repository -am -Dtest=MessagingUnitTestSuite -DfailIfNoTests=false "${args[@]}" | |
continue-on-error: true | |
- name: "Update GitHub Step Summary" | |
if: github.ref_name == 'master' | |
run: | | |
echo "#### ⏱ After Tests: $(date -u +'%Y-%m-%d %H:%M:%S%:z')" >> $GITHUB_STEP_SUMMARY | |
continue-on-error: true | |
- name: "Summarize Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-summarize | |
with: | |
tests-outcome: ${{ steps.run-tests.outcome }} | |
rp-launch-key: ${{ steps.rp-prepare.outputs.key }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
continue-on-error: true | |
- name: "Exit on failure" | |
if: steps.run-tests.outcome != 'success' | |
run: | | |
echo "::error title=run-tests::Tests failed: re-throwing on error." | |
exit 1 | |
- name: "Clean Maven cache" | |
run: bash ./scripts/ci/cleanup_cache.sh | |
repository_app_context_test_suites: | |
name: Repository - ${{ matrix.testSuite }} ${{ matrix.idp }} | |
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: with-sso | |
mvn-options: '-Didentity-service.auth-server-url=http://${HOST_IP}:8999/auth -Dauthentication.chain=identity-service1:identity-service,alfrescoNtlm1:alfrescoNtlm' | |
idp: Keycloak | |
- testSuite: AppContext05TestSuite | |
compose-profile: default | |
mvn-options: '-Didentity-service.auth-server-url=https://dev-ps-alfresco.auth0.com/ -Dauthentication.chain=identity-service1:identity-service,alfrescoNtlm1:alfrescoNtlm -Didentity-service.audience=http://localhost:3000 -Didentity-service.resource=${AUTH0_CLIENT_ID} -Didentity-service.credentials.secret=${AUTH0_CLIENT_SECRET} -Didentity-service.public-client=false -Didentity-service.realm= -Didentity-service.client-id.validation.disabled=false [email protected] -Dadmin.password=${AUTH0_ADMIN_PASSWORD} -Dauth0.enabled=true -Dauth0.admin.password=${AUTH0_ADMIN_PASSWORD} -Didentity-service.principal-attribute=nickname' | |
idp: Auth0 | |
- 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' | |
- testSuite: MTLSTestSuite | |
compose-profile: with-mtls-transform-core-aio | |
mtls: true | |
disabledHostnameVerification: false | |
mvn-options: '-Dencryption.ssl.keystore.location=${CI_WORKSPACE}/keystores/alfresco/alfresco.keystore -Dencryption.ssl.truststore.location=${CI_WORKSPACE}/keystores/alfresco/alfresco.truststore' | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- 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 the host IP" | |
run: echo "HOST_IP=$(hostname -I | cut -f1 -d' ')" >> $GITHUB_ENV | |
- name: "Generate Keystores and Truststores for Mutual TLS configuration" | |
if: ${{ matrix.mtls }} | |
run: | | |
git clone -b "master" --depth=1 "https://${{ secrets.BOT_GITHUB_USERNAME }}:${{ secrets.BOT_GITHUB_TOKEN }}@github.com/Alfresco/alfresco-ssl-generator.git" | |
if ${{ matrix.disabledHostnameVerification }} ; then | |
bash ${{ env.CI_WORKSPACE }}/alfresco-ssl-generator/scripts/ci/generate_keystores_wrong_hostnames.sh | |
echo "HOSTNAME_VERIFICATION_DISABLED=true" >> "$GITHUB_ENV" | |
else | |
bash ${{ env.CI_WORKSPACE }}/alfresco-ssl-generator/scripts/ci/generate_keystores.sh | |
echo "HOSTNAME_VERIFICATION_DISABLED=false" >> "$GITHUB_ENV" | |
fi | |
- name: "Set up the environment" | |
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} | |
run: docker compose -f ./scripts/ci/docker-compose/docker-compose.yaml --profile ${{ matrix.compose-profile }} up -d | |
- name: "Prepare Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-prepare | |
with: | |
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} - ${{ matrix.testSuite }} ${{ matrix.idp }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-use-static-launch-name: true | |
continue-on-error: true | |
- name: "Add GitHub Step Summary" | |
if: github.ref_name == 'master' | |
env: | |
RP_ENABLED: ${{ steps.rp-prepare.outputs.enabled }} | |
RP_KEY: ${{ steps.rp-prepare.outputs.key }} | |
RP_URL: ${{ steps.rp-prepare.outputs.url }} | |
run: bash scripts/ci/add_step_summary.sh | |
continue-on-error: true | |
- name: "Run tests" | |
id: run-tests | |
env: | |
RP_OPTS: ${{ github.ref_name == 'master' && steps.rp-prepare.outputs.mvn-opts || '' }} | |
run: | | |
eval "args=($RP_OPTS)" | |
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 }} "${args[@]}" | |
continue-on-error: true | |
- name: "Update GitHub Step Summary" | |
if: github.ref_name == 'master' | |
run: | | |
echo "#### ⏱ After Tests: $(date -u +'%Y-%m-%d %H:%M:%S%:z')" >> $GITHUB_STEP_SUMMARY | |
continue-on-error: true | |
- name: "Summarize Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-summarize | |
with: | |
tests-outcome: ${{ steps.run-tests.outcome }} | |
rp-launch-key: ${{ steps.rp-prepare.outputs.key }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
continue-on-error: true | |
- name: "Exit on failure" | |
if: steps.run-tests.outcome != 'success' | |
run: | | |
echo "::error title=run-tests::Tests failed: re-throwing on error." | |
exit 1 | |
- 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' || startsWith(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@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- 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 ${{ 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: "Prepare Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-prepare | |
with: | |
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} - ${{ matrix.test-name }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-use-static-launch-name: true | |
continue-on-error: true | |
- name: "Add GitHub Step Summary" | |
if: github.ref_name == 'master' | |
env: | |
RP_ENABLED: ${{ steps.rp-prepare.outputs.enabled }} | |
RP_KEY: ${{ steps.rp-prepare.outputs.key }} | |
RP_URL: ${{ steps.rp-prepare.outputs.url }} | |
run: bash scripts/ci/add_step_summary.sh | |
continue-on-error: true | |
- name: "Run tests" | |
id: tests | |
env: | |
RP_OPTS: ${{ github.ref_name == 'master' && steps.rp-prepare.outputs.mvn-opts || '' }} | |
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} | |
run: | | |
eval "args=($RP_OPTS)" | |
mvn -B verify -f packaging/tests/${{ matrix.pom-dir }}/pom.xml -Pall-tas-tests,${{ matrix.test-profile }} -Denvironment=default -DrunBugs=false "${args[@]}" | |
continue-on-error: true | |
- 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: "Update GitHub Step Summary" | |
if: github.ref_name == 'master' | |
run: | | |
echo "#### ⏱ After Tests: $(date -u +'%Y-%m-%d %H:%M:%S%:z')" >> $GITHUB_STEP_SUMMARY | |
continue-on-error: true | |
- name: "Summarize Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-summarize | |
with: | |
tests-outcome: ${{ steps.tests.outcome }} | |
rp-launch-key: ${{ steps.rp-prepare.outputs.key }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
continue-on-error: true | |
- name: "Exit on failure" | |
if: steps.tests.outcome != 'success' | |
run: | | |
echo "::error title=tests::Tests failed: re-throwing on error." | |
exit 1 | |
- 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@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- name: "Init" | |
run: bash ./scripts/ci/init.sh | |
- name: "Run Postgres 15.4 database" | |
run: docker compose -f ./scripts/ci/docker-compose/docker-compose.yaml --profile postgres up -d | |
- name: "Prepare Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-prepare | |
with: | |
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-use-static-launch-name: true | |
continue-on-error: true | |
- name: "Add GitHub Step Summary" | |
if: github.ref_name == 'master' | |
env: | |
RP_ENABLED: ${{ steps.rp-prepare.outputs.enabled }} | |
RP_KEY: ${{ steps.rp-prepare.outputs.key }} | |
RP_URL: ${{ steps.rp-prepare.outputs.url }} | |
run: bash scripts/ci/add_step_summary.sh | |
continue-on-error: true | |
- name: "Run tests" | |
id: run-tests | |
env: | |
RP_OPTS: ${{ github.ref_name == 'master' && steps.rp-prepare.outputs.mvn-opts || '' }} | |
run: | | |
eval "args=($RP_OPTS)" | |
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 "${args[@]}" | |
continue-on-error: true | |
- name: "Update GitHub Step Summary" | |
if: github.ref_name == 'master' | |
run: | | |
echo "#### ⏱ After Tests: $(date -u +'%Y-%m-%d %H:%M:%S%:z')" >> $GITHUB_STEP_SUMMARY | |
continue-on-error: true | |
- name: "Summarize Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-summarize | |
with: | |
tests-outcome: ${{ steps.run-tests.outcome }} | |
rp-launch-key: ${{ steps.rp-prepare.outputs.key }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
continue-on-error: true | |
- name: "Exit on failure" | |
if: steps.run-tests.outcome != 'success' | |
run: | | |
echo "::error title=run-tests::Tests failed: re-throwing on error." | |
exit 1 | |
- 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' || startsWith(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@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- name: "Build" | |
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} | |
run: | | |
bash ./scripts/ci/init.sh | |
bash ./scripts/ci/build.sh | |
- name: "Prepare Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-prepare | |
with: | |
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} 0${{ matrix.part }} - (PostgreSQL) ${{ matrix.test-name }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-use-static-launch-name: true | |
continue-on-error: true | |
- name: "Verify" | |
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} | |
env: | |
RP_OPTS: ${{ github.ref_name == 'master' && steps.rp-prepare.outputs.mvn-opts || '' }} | |
run: | | |
eval "args=($RP_OPTS)" | |
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 }} "${args[@]}" | |
- 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' || startsWith(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@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- name: "Build" | |
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} | |
run: | | |
bash ./scripts/ci/init.sh | |
bash ./scripts/ci/build.sh | |
- name: "Prepare Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-prepare | |
with: | |
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} 0${{ matrix.part }} - (MySQL) ${{ matrix.test-name }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-use-static-launch-name: true | |
continue-on-error: true | |
- name: "Verify" | |
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} | |
env: | |
RP_OPTS: ${{ github.ref_name == 'master' && steps.rp-prepare.outputs.mvn-opts || '' }} | |
run: | | |
eval "args=($RP_OPTS)" | |
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 }} "${args[@]}" | |
- 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' || startsWith(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@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- 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: "Prepare Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-prepare | |
with: | |
rp-launch-prefix: ${{ env.RP_LAUNCH_PREFIX }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-use-static-launch-name: true | |
continue-on-error: true | |
- name: "Add GitHub Step Summary" | |
if: github.ref_name == 'master' | |
env: | |
RP_ENABLED: ${{ steps.rp-prepare.outputs.enabled }} | |
RP_KEY: ${{ steps.rp-prepare.outputs.key }} | |
RP_URL: ${{ steps.rp-prepare.outputs.url }} | |
run: bash scripts/ci/add_step_summary.sh | |
continue-on-error: true | |
- name: "Test" | |
id: run-tests | |
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} | |
env: | |
RP_OPTS: ${{ github.ref_name == 'master' && steps.rp-prepare.outputs.mvn-opts || '' }} | |
run: | | |
eval "args=($RP_OPTS)" | |
mvn -B test -pl :alfresco-governance-services-automation-community-rest-api -Dskip.automationtests=false -Pags -Pall-tas-tests "${args[@]}" | |
continue-on-error: true | |
- name: "Update GitHub Step Summary" | |
if: github.ref_name == 'master' | |
run: | | |
echo "#### ⏱ After Tests: $(date -u +'%Y-%m-%d %H:%M:%S%:z')" >> $GITHUB_STEP_SUMMARY | |
continue-on-error: true | |
- name: "Summarize Report Portal" | |
if: github.ref_name == 'master' | |
uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
id: rp-summarize | |
with: | |
tests-outcome: ${{ steps.run-tests.outcome }} | |
rp-launch-key: ${{ steps.rp-prepare.outputs.key }} | |
rp-project: ${{ env.RP_PROJECT }} | |
rp-token: ${{ secrets.REPORT_PORTAL_TOKEN }} | |
continue-on-error: true | |
- name: "Exit on failure" | |
if: steps.run-tests.outcome != 'success' | |
run: | | |
echo "::error title=run-tests::Tests failed: re-throwing on error." | |
exit 1 | |
- name: "Configure AWS credentials" | |
if: ${{ always() }} | |
uses: aws-actions/configure-aws-credentials@v4 | |
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 | |
ags_start_api_explorer: | |
name: "Test Tomcat deployment of api explorer" | |
runs-on: ubuntu-latest | |
needs: [ prepare ] | |
if: > | |
(((github.ref_name == 'master' || startsWith(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]') | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- name: "Build" | |
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} | |
run: | | |
bash ./scripts/ci/init.sh | |
bash ./scripts/ci/build.sh | |
- name: "Test Tomcat deployment" | |
run: | | |
mvn verify -Pags,start-api-explorer -DskipTests & | |
${{ env.TAS_SCRIPTS }}/wait-for-alfresco-start.sh "http://localhost:8085/api-explorer" |