diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index aa48b17f..be74e890 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -18,13 +18,6 @@ on: - '.github/workflows/kics.yml' - '**/*.md' -env: - ACS_DEPLOYMENT_VERSION: 78132d95e29d7126025e127740d10cf958164947 # 8.6.0-alpha.0 with compose healthcheck - ARTIFACT_NAME: alfresco-docker-images - REGISTRY: ghcr.io - REGISTRY_NAMESPACE: alfresco - TAG: ${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.pull_request.number) || github.ref_name }} - concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name || github.run_id }} cancel-in-progress: true @@ -48,277 +41,15 @@ jobs: - uses: Alfresco/alfresco-build-tools/.github/actions/pre-commit@v8.2.0 with: auto-commit: "true" - - build: + CI: + name: Build v${{ matrix.version }} needs: pre-commit - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - - uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0 - - - name: Setup nexus authentication - run: | - echo "machine nexus.alfresco.com" >> ~/.netrc - echo "login ${{ secrets.NEXUS_USERNAME }}" >> ~/.netrc - echo "password ${{ secrets.NEXUS_PASSWORD }}" >> ~/.netrc - - - name: Restore packages artifacts - uses: actions/cache/restore@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2 - id: artifacts-cache - with: - key: ${{ runner.os }}-packages-v2-${{ hashFiles('**/artifacts.json') }} - path: artifacts_cache/** - - - name: Fetch artifacts from nexus - run: ./scripts/fetch-artifacts.sh - - - name: Save packages artifacts - if: steps.artifacts-cache.outputs.cache-hit != 'true' - uses: actions/cache/save@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2 - with: - key: ${{ steps.artifacts-cache.outputs.cache-primary-key }} - path: artifacts_cache/** - - - name: Set up QEMU - uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # v3.2.0 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@c47758b77c9736f4b2ef4073d4d51994fabfe349 # v3.7.1 - - - name: Login to Quay.io - uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 - if: github.actor != 'dependabot[bot]' - with: - registry: quay.io - username: ${{ secrets.QUAY_USERNAME }} - password: ${{ secrets.QUAY_PASSWORD }} - - - name: Log in to the Container registry - uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 - if: github.actor != 'dependabot[bot]' - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Collect Workflow Telemetry - uses: catchpoint/workflow-telemetry-action@94c3c3d9567a0205de6da68a76c428ce4e769af1 # v2.0.0 - with: - comment_on_pr: false - - - name: Enumerate bake targets - id: bake-targets - uses: docker/bake-action/subaction/list-targets@2e3d19baedb14545e5d41222653874f25d5b4dfb # v5.10.0 - with: - target: default - - - name: Enumerate registry cache targets - id: cache-targets - env: - CACHE_TARGET: ${{ env.REGISTRY }}/${{ env.REGISTRY_NAMESPACE }}/bakery-cache - run: | - echo 'cache-set<> $GITHUB_OUTPUT - echo '${{ steps.bake-targets.outputs.targets }}' | jq -r '.[] | '\ - '"\(.).cache-from=type=registry,ref=${{ env.CACHE_TARGET }}:${{ env.TAG }}-\(.)\n'\ - '\(.).cache-from=type=registry,ref=${{ env.CACHE_TARGET }}:${{ github.event.repository.default_branch }}-\(.)\n'\ - '\(.).cache-to=type=registry,ref=${{ env.CACHE_TARGET }}:${{ env.TAG }}-\(.)"' >> $GITHUB_OUTPUT - echo 'EOF' >> $GITHUB_OUTPUT - - - name: Bake Docker images - env: - TARGETARCH: linux/amd64,linux/arm64 - DOCKER_PUSH: ${{ github.actor != 'dependabot[bot]'}} - uses: docker/bake-action@2e3d19baedb14545e5d41222653874f25d5b4dfb # v5.10.0 - with: - set: | - *.output=type=registry,push=${{ env.DOCKER_PUSH }} - ${{ steps.cache-targets.outputs.cache-set }} - - compose-test: - needs: build - runs-on: ${{ matrix.edition == 'enterprise' && 'alfrescoPub-ubuntu2204-16G-4CPU' || 'ubuntu-latest' }} - if: github.actor != 'dependabot[bot]' + uses: ./.github/workflows/reusable_build_and_test.yml strategy: fail-fast: false matrix: - edition: [enterprise, community] - env: - MERGED_COMPOSE_PATH: test/merged-compose.yaml - steps: - - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - - name: Log in to the Container registry - uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@c47758b77c9736f4b2ef4073d4d51994fabfe349 # v3.7.1 - - - name: Fetch compose from acs-deployment - run: ./scripts/fetch-compose.sh ${{ env.ACS_DEPLOYMENT_VERSION }} - - - name: Merge Docker Compose files - env: - UPSTREAM_COMPOSE_PATH: test/${{ matrix.edition == 'community' && 'community-' || '' }}compose.yaml - OVERRIDE_COMPOSE_PATH: test/${{ matrix.edition }}-override.yaml - run: docker compose -f ${{ env.UPSTREAM_COMPOSE_PATH }} -f ${{ env.OVERRIDE_COMPOSE_PATH }} config > ${{ env.MERGED_COMPOSE_PATH }} - - - name: Verify docker-compose (${{ matrix.edition }}) - id: verify_compose - uses: Alfresco/alfresco-build-tools/.github/actions/dbp-charts/verify-compose@v8.2.0 - timeout-minutes: 10 - with: - postman_path: test/postman/docker-compose - postman_json: acs-test-docker-compose-collection.json - compose_file_path: ${{ env.MERGED_COMPOSE_PATH }} - quay_username: ${{ secrets.QUAY_USERNAME }} - quay_password: ${{ secrets.QUAY_PASSWORD }} - - - name: Save containers logs (${{ matrix.edition }}) - if: always() && steps.verify_compose.outcome != 'skipped' - uses: Alfresco/alfresco-build-tools/.github/actions/docker-dump-containers-logs@v8.2.0 - with: - output-archive-name: ${{ matrix.edition }}-logs - - helm-test: - needs: build - runs-on: ${{ matrix.arch == 'arm64' && 'alfrescoARM-ubuntu2404-16G-4CPU' || 'alfrescoPub-ubuntu2204-16G-4CPU' }} - if: github.actor != 'dependabot[bot]' - strategy: - fail-fast: false - matrix: - arch: [arm64, amd64] - edition: [enterprise, community] - steps: - - name: Setup cluster - uses: Alfresco/alfresco-build-tools/.github/actions/setup-kind@v8.2.0 - with: - ingress-nginx-ref: controller-v1.8.2 - metrics: "true" - - - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - - uses: azure/setup-helm@fe7b79cd5ee1e45176fcad797de68ecaf3ca4814 # v4.2.0 - with: - version: "3.15.2" - - - name: Login to Quay.io - uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 - with: - registry: quay.io - username: ${{ secrets.QUAY_USERNAME }} - password: ${{ secrets.QUAY_PASSWORD }} - - - name: Log in to the Container registry - uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Create registries auth secret - run: >- - kubectl create secret generic regcred - --from-file=.dockerconfigjson=$HOME/.docker/config.json - --type=kubernetes.io/dockerconfigjson - - - name: Create configmaps for adf apps - run: | - kubectl create configmap acc-config --from-file=app.config.json=test/configs/acc.json - kubectl create configmap adw-config --from-file=app.config.json=test/configs/adw.json - - - name: Checkout acs-deployment sources - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - with: - repository: Alfresco/acs-deployment - ref: ${{ env.ACS_DEPLOYMENT_VERSION }} - path: acs-deployment - - - name: Setup helm repository - working-directory: acs-deployment/helm/alfresco-content-services - run: | - helm repo add self https://alfresco.github.io/alfresco-helm-charts/ - helm repo add activiti https://activiti.github.io/activiti-cloud-helm-charts - helm repo add bitnami https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami/ - helm repo add elastic https://helm.elastic.co - helm dependency build - - - name: Preprocess test-overrides.yaml - env: - OVERRIDES_VALUES_FILE: test/helm/test-overrides.yaml - run: | - sed -i "s|localhost/alfresco/|${REGISTRY}/${REGISTRY_NAMESPACE}/|g" ${{ env.OVERRIDES_VALUES_FILE }} - sed -i "s|tag: latest|tag: ${TAG}|g" ${{ env.OVERRIDES_VALUES_FILE }} - - if [ "${{ matrix.edition }}" = "community" ]; then - sed -i "s|/alfresco-content-repository|/alfresco-content-repository-community|g" ${{ env.OVERRIDES_VALUES_FILE }} - sed -i "s|/alfresco-share|/alfresco-share-community|g" ${{ env.OVERRIDES_VALUES_FILE }} - fi - - cat ${{ env.OVERRIDES_VALUES_FILE }} - - - name: Helm install - id: helm_install - run: | - helm install acs ./acs-deployment/helm/alfresco-content-services \ - --set global.search.sharedSecret="$(openssl rand -hex 24)" \ - --set global.known_urls=http://localhost \ - --set global.alfrescoRegistryPullSecrets=regcred \ - --values ./acs-deployment/helm/alfresco-content-services/${{ matrix.edition == 'community' && 'community_' || '' }}values.yaml \ - --values ./acs-deployment/test/${{ matrix.edition }}-integration-test-values.yaml \ - --values test/helm/test-overrides.yaml \ - --values test/helm/test-overrides-${{ matrix.edition }}.yaml - - - name: Watch Helm deployment - env: - HELM_INSTALL_TIMEOUT: 10m - run: | - kubectl get pods --watch & - KWPID=$! - kubectl wait --timeout=${{ env.HELM_INSTALL_TIMEOUT }} --all=true --for=condition=Ready pods - kill $KWPID - - if [ "${{ matrix.edition }}" = "enterprise" ]; then - echo "Waiting for Enterprise Search Reindexing job to complete... " - kubectl wait --timeout=5m --for=condition=complete job/acs-alfresco-search-enterprise-reindexing - fi - - - name: Debug cluster status after install - if: always() && steps.helm_install.outcome != 'skipped' - run: | - helm ls --all-namespaces --all - kubectl get all --all-namespaces - kubectl describe pod - - - name: Run helm test - id: helm_test - run: helm test acs - - - name: Debug cluster status after helm test - if: always() && steps.helm_test.outcome != 'skipped' - run: | - kubectl logs -l app.kubernetes.io/component=dtas --tail=-1 - kubectl get all --all-namespaces - kubectl describe pod - - - name: Collect logs from all containers - if: always() && steps.helm_install.outcome != 'skipped' - run: | - mkdir -p logs - for pod in $(kubectl get pods -n default -o jsonpath='{.items[*].metadata.name}'); do - kubectl logs $pod -n default > logs/${pod}.log - done - - - name: Upload logs as artifact - if: always() && steps.helm_install.outcome != 'skipped' - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 #v4.4.3 - with: - name: k8s-logs-${{ matrix.arch }}-${{ matrix.edition }} - path: logs + version: [23, 74] + with: + tag: ${{ github.event_name == 'pull_request' && format('pr-{0}-v{1}', github.event.pull_request.number, matrix.version) || format('{0}-v{1}', github.ref_name, matrix.version) }} + acs_version: ${{ matrix.version }} + secrets: inherit diff --git a/.github/workflows/cleanup_images.yml b/.github/workflows/cleanup_images.yml index 15231076..27a7522a 100644 --- a/.github/workflows/cleanup_images.yml +++ b/.github/workflows/cleanup_images.yml @@ -53,13 +53,13 @@ jobs: uses: dataaxiom/ghcr-cleanup-action@98b4022383d6ddb70ccbf6a378b4d8c67a60f066 # v1.0.13 if: github.event_name == 'pull_request' env: - PR_TAG: ${{ format('pr-{0}', github.event.pull_request.number) }} + PR_TAGS: ${{ format('pr-{0}*', github.event.pull_request.number) }} with: token: ${{ secrets.DELETE_PACKAGES_GITHUB_TOKEN }} owner: ${{ env.ORG }} repository: ${{ env.REPO }} packages: ${{ env.PACKAGE_NAMES }} - delete-tags: ${{ env.PR_TAG }} + delete-tags: ${{ env.PR_TAGS }} dry-run: false - name: Remove images when requested diff --git a/.github/workflows/reusable_build_and_test.yml b/.github/workflows/reusable_build_and_test.yml new file mode 100644 index 00000000..211e8f41 --- /dev/null +++ b/.github/workflows/reusable_build_and_test.yml @@ -0,0 +1,345 @@ +name: CI + +on: + workflow_call: + inputs: + tag: + description: 'Tag for the Docker images' + required: true + type: string + acs_version: + description: 'Version of ACS to build' + required: true + type: string + +env: + REGISTRY: ghcr.io + REGISTRY_NAMESPACE: alfresco + TAG: ${{ inputs.tag }} + ACS_DEPLOYMENT_VERSION: 78132d95e29d7126025e127740d10cf958164947 # 8.6.0-alpha.0 with compose healthcheck + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - uses: Alfresco/alfresco-build-tools/.github/actions/free-hosted-runner-disk-space@v8.2.0 + + - name: Setup nexus authentication + run: | + echo "machine nexus.alfresco.com" >> ~/.netrc + echo "login ${{ secrets.NEXUS_USERNAME }}" >> ~/.netrc + echo "password ${{ secrets.NEXUS_PASSWORD }}" >> ~/.netrc + + - name: Restore packages artifacts + uses: actions/cache/restore@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2 + id: artifacts-cache + with: + key: ${{ runner.os }}-packages-v2-${{ hashFiles('**/artifacts.json') }}-${{ inputs.acs_version }} + path: artifacts_cache/** + + - name: Fetch artifacts from nexus + env: + ACS_VERSION: ${{ inputs.acs_version }} + run: ./scripts/fetch-artifacts.sh + + - name: Save packages artifacts + if: steps.artifacts-cache.outputs.cache-hit != 'true' + uses: actions/cache/save@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2 + with: + key: ${{ steps.artifacts-cache.outputs.cache-primary-key }} + path: artifacts_cache/** + + - name: Set up QEMU + uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # v3.2.0 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@c47758b77c9736f4b2ef4073d4d51994fabfe349 # v3.7.1 + + - name: Login to Quay.io + uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 + if: github.actor != 'dependabot[bot]' + with: + registry: quay.io + username: ${{ secrets.QUAY_USERNAME }} + password: ${{ secrets.QUAY_PASSWORD }} + + - name: Log in to the Container registry + uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 + if: github.actor != 'dependabot[bot]' + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Collect Workflow Telemetry + uses: catchpoint/workflow-telemetry-action@94c3c3d9567a0205de6da68a76c428ce4e769af1 # v2.0.0 + with: + comment_on_pr: false + + - name: Enumerate bake targets + id: bake-targets + uses: docker/bake-action/subaction/list-targets@2e3d19baedb14545e5d41222653874f25d5b4dfb # v5.10.0 + with: + target: default + + - name: Enumerate registry cache targets + id: cache-targets + env: + CACHE_TARGET: ${{ env.REGISTRY }}/${{ env.REGISTRY_NAMESPACE }}/bakery-cache + run: | + echo 'cache-set<> $GITHUB_OUTPUT + echo '${{ steps.bake-targets.outputs.targets }}' | jq -r '.[] | '\ + '"\(.).cache-from=type=registry,ref=${{ env.CACHE_TARGET }}:${{ inputs.tag }}-\(.)\n'\ + '\(.).cache-from=type=registry,ref=${{ env.CACHE_TARGET }}:${{ github.event.repository.default_branch }}-\(.)\n'\ + '\(.).cache-to=type=registry,ref=${{ env.CACHE_TARGET }}:${{ inputs.tag }}-\(.)"' >> $GITHUB_OUTPUT + echo 'EOF' >> $GITHUB_OUTPUT + + - name: Determine the tomcat version + env: + TOMCAT_VERSIONS_FILE: "tomcat/tomcat_versions.yaml" + run: | + if [[ ${{ inputs.acs_version }} == "23" ]]; then + tomcat_field="tomcat10" + else + tomcat_field="tomcat9" + fi + echo "TOMCAT_MAJOR=$(yq e ".${tomcat_field}.major" ${{ env.TOMCAT_VERSIONS_FILE }})" >> $GITHUB_ENV + echo "TOMCAT_VERSION=$(yq e ".${tomcat_field}.version" ${{ env.TOMCAT_VERSIONS_FILE }})" >> $GITHUB_ENV + echo "TOMCAT_SHA512=$(yq e ".${tomcat_field}.sha512" ${{ env.TOMCAT_VERSIONS_FILE }})" >> $GITHUB_ENV + + - name: Bake Docker images + env: + TARGETARCH: ${{ inputs.acs_version == '23' && 'linux/amd64,linux/arm64' || 'linux/amd64' }} + DOCKER_PUSH: ${{ github.actor != 'dependabot[bot]'}} + uses: docker/bake-action@2e3d19baedb14545e5d41222653874f25d5b4dfb # v5.10.0 + with: + set: | + *.output=type=registry,push=${{ env.DOCKER_PUSH }} + ${{ steps.cache-targets.outputs.cache-set }} + + build-matrix: + needs: build + runs-on: ubuntu-latest + if: github.actor != 'dependabot[bot]' + outputs: + compose_matrix_json: ${{ steps.set-matrix.outputs.compose_matrix_json }} + helm_matrix_json: ${{ steps.set-matrix.outputs.helm_matrix_json }} + steps: + - name: Set matrix values for Compose and Helm + id: set-matrix + run: | + if [[ "${{ inputs.acs_version }}" == "23" ]]; then + echo 'compose_matrix_json={"edition": ["enterprise", "community"]}' >> $GITHUB_OUTPUT + echo 'helm_matrix_json={"arch": ["arm64", "amd64"], "edition": ["enterprise", "community"]}' >> $GITHUB_OUTPUT + elif [[ "${{ inputs.acs_version }}" == "74" ]]; then + echo 'compose_matrix_json={"edition": ["74"]}' >> $GITHUB_OUTPUT + echo 'helm_matrix_json={"arch": ["amd64"], "edition": ["74"]}' >> $GITHUB_OUTPUT + fi + + compose-test: + needs: build-matrix + runs-on: ${{ matrix.edition == 'enterprise' && 'alfrescoPub-ubuntu2204-16G-4CPU' || 'ubuntu-latest' }} + if: github.actor != 'dependabot[bot]' + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.build-matrix.outputs.compose_matrix_json) }} + env: + MERGED_COMPOSE_PATH: test/merged-compose.yaml + steps: + - name: Checkout + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Log in to the Container registry + uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@c47758b77c9736f4b2ef4073d4d51994fabfe349 # v3.7.1 + + - name: Fetch compose from acs-deployment + run: ./scripts/fetch-compose.sh ${{ env.ACS_DEPLOYMENT_VERSION }} + + - name: Set path to compose files + id: set-compose-path + run: | + if [[ "${{ matrix.edition }}" == "74" ]]; then + echo "UPSTREAM_COMPOSE_PATH=test/7.4.N-compose.yaml" >> $GITHUB_ENV + elif [[ "${{ matrix.edition }}" == "community" ]]; then + echo "UPSTREAM_COMPOSE_PATH=test/community-compose.yaml" >> $GITHUB_ENV + else + echo "UPSTREAM_COMPOSE_PATH=test/compose.yaml" >> $GITHUB_ENV + fi + + - name: Merge Docker Compose files + env: + OVERRIDE_COMPOSE_PATH: test/${{ matrix.edition }}-override.yaml + run: docker compose -f ${{ env.UPSTREAM_COMPOSE_PATH }} -f ${{ env.OVERRIDE_COMPOSE_PATH }} config > ${{ env.MERGED_COMPOSE_PATH }} + + - name: Verify docker-compose (${{ matrix.edition }}) + id: verify_compose + uses: Alfresco/alfresco-build-tools/.github/actions/dbp-charts/verify-compose@v8.2.0 + timeout-minutes: 10 + with: + postman_path: test/postman/docker-compose + postman_json: acs-test-docker-compose-collection.json + compose_file_path: ${{ env.MERGED_COMPOSE_PATH }} + quay_username: ${{ secrets.QUAY_USERNAME }} + quay_password: ${{ secrets.QUAY_PASSWORD }} + + - name: Save containers logs (${{ matrix.edition }}) + if: always() && steps.verify_compose.outcome != 'skipped' + uses: Alfresco/alfresco-build-tools/.github/actions/docker-dump-containers-logs@v8.2.0 + with: + output-archive-name: ${{ matrix.edition }}-logs-${{ inputs.acs_version }} + + helm-test: + needs: build-matrix + runs-on: ${{ matrix.arch == 'arm64' && 'alfrescoARM-ubuntu2404-16G-4CPU' || 'alfrescoPub-ubuntu2204-16G-4CPU' }} + if: github.actor != 'dependabot[bot]' + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.build-matrix.outputs.helm_matrix_json) }} + steps: + - name: Setup cluster + uses: Alfresco/alfresco-build-tools/.github/actions/setup-kind@v8.2.0 + with: + ingress-nginx-ref: controller-v1.8.2 + metrics: "true" + + - name: Checkout + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - uses: azure/setup-helm@fe7b79cd5ee1e45176fcad797de68ecaf3ca4814 # v4.2.0 + with: + version: "3.15.2" + + - name: Login to Quay.io + uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 + with: + registry: quay.io + username: ${{ secrets.QUAY_USERNAME }} + password: ${{ secrets.QUAY_PASSWORD }} + + - name: Log in to the Container registry + uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Create registries auth secret + run: >- + kubectl create secret generic regcred + --from-file=.dockerconfigjson=$HOME/.docker/config.json + --type=kubernetes.io/dockerconfigjson + + - name: Create configmaps for adf apps + run: | + kubectl create configmap acc-config --from-file=app.config.json=test/configs/acc.json + kubectl create configmap adw-config --from-file=app.config.json=test/configs/adw.json + + - name: Checkout acs-deployment sources + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + repository: Alfresco/acs-deployment + ref: ${{ env.ACS_DEPLOYMENT_VERSION }} + path: acs-deployment + + - name: Setup helm repository + working-directory: acs-deployment/helm/alfresco-content-services + run: | + helm repo add self https://alfresco.github.io/alfresco-helm-charts/ + helm repo add activiti https://activiti.github.io/activiti-cloud-helm-charts + helm repo add bitnami https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami/ + helm repo add elastic https://helm.elastic.co + helm dependency build + + - name: Preprocess test-overrides.yaml + env: + OVERRIDES_VALUES_FILE: test/helm/test-overrides.yaml + run: | + sed -i "s|localhost/alfresco/|${REGISTRY}/${REGISTRY_NAMESPACE}/|g" ${{ env.OVERRIDES_VALUES_FILE }} + sed -i "s|tag: latest|tag: ${TAG}|g" ${{ env.OVERRIDES_VALUES_FILE }} + + if [ "${{ matrix.edition }}" = "community" ]; then + sed -i "s|/alfresco-content-repository|/alfresco-content-repository-community|g" ${{ env.OVERRIDES_VALUES_FILE }} + sed -i "s|/alfresco-share|/alfresco-share-community|g" ${{ env.OVERRIDES_VALUES_FILE }} + fi + + cat ${{ env.OVERRIDES_VALUES_FILE }} + + - name: Set path to compose files + id: set-helm-values + run: | + if [[ "${{ matrix.edition }}" == "74" ]]; then + echo "UPSTREAM_HELM_VALUES=7.4.N_values.yaml" >> $GITHUB_ENV + elif [[ "${{ matrix.edition }}" == "community" ]]; then + echo "UPSTREAM_HELM_VALUES=community_values.yaml" >> $GITHUB_ENV + else + echo "UPSTREAM_HELM_VALUES=values.yaml" >> $GITHUB_ENV + fi + + - name: Helm install + id: helm_install + run: | + helm install acs ./acs-deployment/helm/alfresco-content-services \ + --set global.search.sharedSecret="$(openssl rand -hex 24)" \ + --set global.known_urls=http://localhost \ + --set global.alfrescoRegistryPullSecrets=regcred \ + --values ./acs-deployment/helm/alfresco-content-services/${{ env.UPSTREAM_HELM_VALUES }} \ + --values ./acs-deployment/test/${{ matrix.edition == 'community' && 'community' || 'enterprise' }}-integration-test-values.yaml \ + --values test/helm/test-overrides.yaml \ + --values test/helm/test-overrides-${{ matrix.edition }}.yaml + + - name: Watch Helm deployment + env: + HELM_INSTALL_TIMEOUT: 10m + run: | + kubectl get pods --watch & + KWPID=$! + kubectl wait --timeout=${{ env.HELM_INSTALL_TIMEOUT }} --all=true --for=condition=Ready pods + kill $KWPID + + if [ "${{ matrix.edition }}" = "enterprise" ]; then + echo "Waiting for Enterprise Search Reindexing job to complete... " + kubectl wait --timeout=5m --for=condition=complete job/acs-alfresco-search-enterprise-reindexing + fi + + - name: Debug cluster status after install + if: always() && steps.helm_install.outcome != 'skipped' + run: | + helm ls --all-namespaces --all + kubectl get all --all-namespaces + kubectl describe pod + + - name: Run helm test + id: helm_test + run: helm test acs + + - name: Debug cluster status after helm test + if: always() && steps.helm_test.outcome != 'skipped' + run: | + kubectl logs -l app.kubernetes.io/component=dtas --tail=-1 + kubectl get all --all-namespaces + kubectl describe pod + + - name: Collect logs from all containers + if: always() && steps.helm_install.outcome != 'skipped' + run: | + mkdir -p logs + for pod in $(kubectl get pods -n default -o jsonpath='{.items[*].metadata.name}'); do + kubectl logs $pod -n default > logs/${pod}.log + done + + - name: Upload logs as artifact + if: always() && steps.helm_install.outcome != 'skipped' + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 #v4.4.3 + with: + name: k8s-logs-${{ matrix.arch }}-${{ matrix.edition }} + path: logs diff --git a/.gitignore b/.gitignore index 6bce344c..f6c6333f 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ artifacts_cache # Files fetched by scripts/fetch_compose.sh test/compose.yaml test/community-compose.yaml +test/7.4.N-compose.yaml # Files fetched by scripts/fetch_helm.sh test/helm/enterprise-integration-test-values.yaml test/helm/community-integration-test-values.yaml diff --git a/Makefile b/Makefile index fe92bd81..690ed717 100644 --- a/Makefile +++ b/Makefile @@ -28,6 +28,19 @@ help: @echo " all_ci Build all images including cleanup for Continuous Integration" @echo " help Display this help message" +ACS_VERSION ?= 23 +TOMCAT_VERSIONS_FILE := tomcat/tomcat_versions.yaml + +ifeq ($(ACS_VERSION), 23) + TOMCAT_FIELD := "tomcat10" +else + TOMCAT_FIELD := "tomcat9" +endif + +TOMCAT_MAJOR := $(shell yq e '.${TOMCAT_FIELD}.major' $(TOMCAT_VERSIONS_FILE)) +TOMCAT_VERSION := $(shell yq e '.${TOMCAT_FIELD}.version' $(TOMCAT_VERSIONS_FILE)) +TOMCAT_SHA512 := $(shell yq e '.${TOMCAT_FIELD}.sha512' $(TOMCAT_VERSIONS_FILE)) + setenv: auth ifdef BAKE_NO_CACHE DOCKER_BAKE_ARGS += --no-cache diff --git a/README.md b/README.md index 65b050e3..5d77d4de 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Building images requires the following tools: - A recent enough Docker installation (with buildx support) - Credentials to access the Alfresco artifacts (Nexus server), if building Enterprise images -- Some common unix tools: `jq`, `wget`, `make` +- Some common unix tools: `jq`, `yq`, `wget`, `make` ### Nexus authentication diff --git a/adf-apps/acc/artifacts.json b/adf-apps/acc/artifacts.json index 4df6cb0a..960f10c8 100644 --- a/adf-apps/acc/artifacts.json +++ b/adf-apps/acc/artifacts.json @@ -9,6 +9,16 @@ "group": "org.alfresco", "repository": "releases" } + ], + "acs74": [ + { + "name": "alfresco-control-center", + "version": "8.3.0", + "path": "adf-apps/acc", + "classifier": ".zip", + "group": "org.alfresco", + "repository": "releases" + } ] } } diff --git a/adf-apps/adw/artifacts.json b/adf-apps/adw/artifacts.json index 8f7d87e3..2102b26c 100644 --- a/adf-apps/adw/artifacts.json +++ b/adf-apps/adw/artifacts.json @@ -9,6 +9,16 @@ "group": "org.alfresco", "repository": "enterprise-releases" } + ], + "acs74": [ + { + "name": "alfresco-digital-workspace", + "version": "4.4.1", + "path": "adf-apps/adw", + "classifier": ".zip", + "group": "org.alfresco", + "repository": "enterprise-releases" + } ] } } diff --git a/ats/sfs/artifacts.json b/ats/sfs/artifacts.json index f23d7655..6a834f59 100644 --- a/ats/sfs/artifacts.json +++ b/ats/sfs/artifacts.json @@ -9,6 +9,16 @@ "repository": "enterprise-releases", "group": "org.alfresco" } + ], + "acs74": [ + { + "name": "alfresco-shared-file-store-controller", + "version": "4.1.4", + "path": "ats/sfs", + "classifier": ".jar", + "repository": "enterprise-releases", + "group": "org.alfresco" + } ] } } diff --git a/ats/trouter/artifacts.json b/ats/trouter/artifacts.json index 5cc285b3..c753b9b2 100644 --- a/ats/trouter/artifacts.json +++ b/ats/trouter/artifacts.json @@ -9,6 +9,16 @@ "repository": "enterprise-releases", "group": "org.alfresco" } + ], + "acs74": [ + { + "name": "alfresco-transform-router", + "version": "4.1.4", + "path": "ats/trouter", + "classifier": ".jar", + "repository": "enterprise-releases", + "group": "org.alfresco" + } ] } } diff --git a/connector/ms365/artifacts.json b/connector/ms365/artifacts.json index a03735ab..65e69b53 100644 --- a/connector/ms365/artifacts.json +++ b/connector/ms365/artifacts.json @@ -9,6 +9,16 @@ "repository": "enterprise-releases", "group": "org.alfresco" } + ], + "acs74": [ + { + "name": "onedrive-springboot", + "version": "2.0.3", + "path": "connector/ms365", + "classifier": ".jar", + "repository": "enterprise-releases", + "group": "org.alfresco" + } ] } } diff --git a/connector/msteams/artifacts.json b/connector/msteams/artifacts.json index e270c353..2bcefd85 100644 --- a/connector/msteams/artifacts.json +++ b/connector/msteams/artifacts.json @@ -9,6 +9,16 @@ "repository": "enterprise-releases", "group": "org.alfresco" } + ], + "acs74": [ + { + "name": "alfresco-ms-teams-springboot", + "version": "2.0.3", + "path": "connector/msteams", + "classifier": ".jar", + "repository": "enterprise-releases", + "group": "org.alfresco" + } ] } } diff --git a/repository/artifacts.json b/repository/artifacts.json index 97958a0b..e982cbc9 100644 --- a/repository/artifacts.json +++ b/repository/artifacts.json @@ -57,6 +57,64 @@ "group": "org.alfresco", "repository": "public" } + ], + "acs74": [ + { + "name": "postgresql", + "version": "42.6.1", + "classifier": ".jar", + "group": "org.postgresql", + "repository": "public", + "path": "repository/libs" + }, + { + "name": "alfresco-share-services", + "version": "22.23", + "path": "repository/amps", + "classifier": ".amp", + "group": "org.alfresco", + "repository": "releases" + }, + { + "name": "alfresco-aos-module", + "version": "1.6.3", + "path": "repository/amps", + "classifier": ".amp", + "group": "org.alfresco.aos-module", + "repository": "releases" + }, + { + "name": "alfresco-device-sync-repo", + "version": "3.11.3", + "path": "repository/amps_enterprise", + "classifier": ".amp", + "group": "org.alfresco.services.sync", + "repository": "enterprise-releases" + }, + { + "name": "alfresco-googledrive-repo-enterprise", + "version": "3.4.2", + "path": "repository/amps_enterprise", + "classifier": ".amp", + "group": "org.alfresco.integrations", + "repository": "enterprise-releases" + }, + { + "name": "alfresco-content-services-distribution", + "version": "7.4.2.1", + "path": "repository/distribution", + "classifier": ".zip", + "group": "org.alfresco", + "repository": "enterprise-releases" + }, + { + "name": "alfresco-content-services-community-distribution", + "version": "7.4.2", + "path": "repository/distribution", + "classifier": ".zip", + "group": "org.alfresco", + "repository": "public" + } ] } } diff --git a/scripts/fetch-artifacts.sh b/scripts/fetch-artifacts.sh index c556ddad..1380060f 100755 --- a/scripts/fetch-artifacts.sh +++ b/scripts/fetch-artifacts.sh @@ -4,17 +4,16 @@ REPO_ROOT="$(dirname $0)/.." TEMP_DIR=$(mktemp -d) -ACS_VERSION=${ACS_VERSION:=23.2.2} -INDEX_KEY=${ACS_VERSION%%.*} +ACS_VERSION=${ACS_VERSION:=23} do_fetch_mvn() { - for i in $(jq -r ".artifacts.acs${INDEX_KEY} | keys | .[]" $1); do - ARTIFACT_REPO=$(jq -r ".artifacts.acs${INDEX_KEY}[$i].repository" $1) - ARTIFACT_NAME=$(jq -r ".artifacts.acs${INDEX_KEY}[$i].name" $1) - ARTIFACT_VERSION=$(jq -r ".artifacts.acs${INDEX_KEY}[$i].version" $1) - ARTIFACT_EXT=$(jq -r ".artifacts.acs${INDEX_KEY}[$i].classifier" $1) - ARTIFACT_GROUP=$(jq -r ".artifacts.acs${INDEX_KEY}[$i].group" $1) - ARTIFACT_PATH=$(jq -r ".artifacts.acs${INDEX_KEY}[$i].path" $1) + for i in $(jq -r ".artifacts.acs${ACS_VERSION} | keys | .[]" $1); do + ARTIFACT_REPO=$(jq -r ".artifacts.acs${ACS_VERSION}[$i].repository" $1) + ARTIFACT_NAME=$(jq -r ".artifacts.acs${ACS_VERSION}[$i].name" $1) + ARTIFACT_VERSION=$(jq -r ".artifacts.acs${ACS_VERSION}[$i].version" $1) + ARTIFACT_EXT=$(jq -r ".artifacts.acs${ACS_VERSION}[$i].classifier" $1) + ARTIFACT_GROUP=$(jq -r ".artifacts.acs${ACS_VERSION}[$i].group" $1) + ARTIFACT_PATH=$(jq -r ".artifacts.acs${ACS_VERSION}[$i].path" $1) ARTIFACT_BASEURL="https://nexus.alfresco.com/nexus/repository/${ARTIFACT_REPO}" ARTIFACT_TMP_PATH="${TEMP_DIR}/${ARTIFACT_NAME}-${ARTIFACT_VERSION}${ARTIFACT_EXT}" ARTIFACT_CACHE_PATH="${REPO_ROOT}/artifacts_cache/${ARTIFACT_NAME}-${ARTIFACT_VERSION}${ARTIFACT_EXT}" diff --git a/scripts/fetch-compose.sh b/scripts/fetch-compose.sh index d9c051ad..4812d13e 100755 --- a/scripts/fetch-compose.sh +++ b/scripts/fetch-compose.sh @@ -10,7 +10,7 @@ if [ "$#" -ne 1 ]; then fi ACS_DEPLOYMENT_VERSION="$1" -COMPOSE_FILES=(compose.yaml community-compose.yaml) +COMPOSE_FILES=(compose.yaml community-compose.yaml 7.4.N-compose.yaml) DESTINATION_DIR="$(dirname "$0")/../test" for COMPOSE_FILE in "${COMPOSE_FILES[@]}"; do diff --git a/search/enterprise/all-in-one/artifacts.json b/search/enterprise/all-in-one/artifacts.json index ecc1cc5b..f1590ff4 100644 --- a/search/enterprise/all-in-one/artifacts.json +++ b/search/enterprise/all-in-one/artifacts.json @@ -9,6 +9,16 @@ "repository": "enterprise-releases", "group": "org.alfresco" } + ], + "acs74": [ + { + "name": "alfresco-elasticsearch-live-indexing", + "version": "3.3.3", + "path": "search/enterprise/all-in-one", + "classifier": "-app.jar", + "repository": "enterprise-releases", + "group": "org.alfresco" + } ] } } diff --git a/search/enterprise/common/artifacts.json b/search/enterprise/common/artifacts.json index 0774151b..dd4794e6 100644 --- a/search/enterprise/common/artifacts.json +++ b/search/enterprise/common/artifacts.json @@ -41,6 +41,48 @@ "repository": "enterprise-releases", "group": "org.alfresco" } + ], + "acs74": [ + { + "name": "alfresco-elasticsearch-live-indexing-mediation", + "version": "3.3.3", + "path": "search/enterprise/common", + "classifier": "-app.jar", + "repository": "enterprise-releases", + "group": "org.alfresco" + }, + { + "name": "alfresco-elasticsearch-live-indexing-metadata", + "version": "3.3.3", + "path": "search/enterprise/common", + "classifier": "-app.jar", + "repository": "enterprise-releases", + "group": "org.alfresco" + }, + { + "name": "alfresco-elasticsearch-live-indexing-path", + "version": "3.3.3", + "path": "search/enterprise/common", + "classifier": "-app.jar", + "repository": "enterprise-releases", + "group": "org.alfresco" + }, + { + "name": "alfresco-elasticsearch-live-indexing-content", + "version": "3.3.3", + "path": "search/enterprise/common", + "classifier": "-app.jar", + "repository": "enterprise-releases", + "group": "org.alfresco" + }, + { + "name": "alfresco-elasticsearch-live-indexing", + "version": "3.3.3", + "path": "search/enterprise/common", + "classifier": "-app.jar", + "repository": "enterprise-releases", + "group": "org.alfresco" + } ] } } diff --git a/search/enterprise/reindexing/artifacts.json b/search/enterprise/reindexing/artifacts.json index cf832683..eb7c1832 100644 --- a/search/enterprise/reindexing/artifacts.json +++ b/search/enterprise/reindexing/artifacts.json @@ -9,6 +9,16 @@ "repository": "enterprise-releases", "group": "org.alfresco" } + ], + "acs74": [ + { + "name": "alfresco-elasticsearch-reindexing", + "version": "3.3.3", + "path": "search/enterprise/reindexing", + "classifier": "-app.jar", + "repository": "enterprise-releases", + "group": "org.alfresco" + } ] } } diff --git a/search/service/artifacts.json b/search/service/artifacts.json index 6a7cccce..ab299895 100644 --- a/search/service/artifacts.json +++ b/search/service/artifacts.json @@ -9,6 +9,16 @@ "repository": "releases", "group": "org.alfresco" } + ], + "acs74": [ + { + "name": "alfresco-search-services", + "version": "2.0.12", + "path": "search/service/distribution", + "classifier": ".zip", + "repository": "releases", + "group": "org.alfresco" + } ] } } diff --git a/share/artifacts.json b/share/artifacts.json index 8b232543..5ec2f7ea 100644 --- a/share/artifacts.json +++ b/share/artifacts.json @@ -25,6 +25,32 @@ "group": "org.alfresco.integrations", "repository": "releases" } + ], + "acs74": [ + { + "name": "alfresco-content-services-share-distribution", + "version": "7.4.2.1", + "path": "share/distribution", + "classifier": ".zip", + "group": "org.alfresco", + "repository": "enterprise-releases" + }, + { + "name": "alfresco-content-services-community-distribution", + "version": "7.4.2", + "path": "share/distribution", + "classifier": ".zip", + "group": "org.alfresco", + "repository": "public" + }, + { + "name": "alfresco-googledrive-share", + "version": "3.4.2", + "path": "share/amps", + "classifier": ".amp", + "group": "org.alfresco.integrations", + "repository": "releases" + } ] } } diff --git a/sync/artifacts.json b/sync/artifacts.json index baabeee2..17d41464 100644 --- a/sync/artifacts.json +++ b/sync/artifacts.json @@ -17,6 +17,24 @@ "repository": "public", "path": "sync/configs/connectors" } + ], + "acs74": [ + { + "name": "sync-dist-6.x", + "version": "3.11.3", + "path": "sync/distribution", + "classifier": ".zip", + "group": "org.alfresco.services.sync", + "repository": "enterprise-releases" + }, + { + "name": "postgresql", + "version": "42.6.1", + "classifier": ".jar", + "group": "org.postgresql", + "repository": "public", + "path": "sync/configs/connectors" + } ] } } diff --git a/tengine/aio/artifacts.json b/tengine/aio/artifacts.json index 11740a08..9fd32092 100644 --- a/tengine/aio/artifacts.json +++ b/tengine/aio/artifacts.json @@ -9,6 +9,16 @@ "repository": "releases", "group": "org.alfresco" } + ], + "acs74": [ + { + "name": "alfresco-transform-core-aio", + "version": "5.1.4", + "path": "tengine/aio", + "classifier": ".jar", + "repository": "releases", + "group": "org.alfresco" + } ] } } diff --git a/tengine/imagemagick/artifacts.json b/tengine/imagemagick/artifacts.json index 46fe945f..e4b34ead 100644 --- a/tengine/imagemagick/artifacts.json +++ b/tengine/imagemagick/artifacts.json @@ -41,6 +41,48 @@ "repository": "releases", "group": "org.alfresco" } + ], + "acs74": [ + { + "name": "imagemagick-distribution", + "version": "7.1.0-16-ci-10", + "path": "tengine/imagemagick/libs", + "classifier": "-libs-el9.rpm", + "repository": "thirdparty", + "group": "org.imagemagick" + }, + { + "name": "imagemagick-distribution", + "version": "7.1.0-16-ci-10", + "path": "tengine/imagemagick", + "classifier": "-el9.rpm", + "repository": "thirdparty", + "group": "org.imagemagick" + }, + { + "name": "imagemagick-distribution", + "version": "7.1.0-16-ci-10", + "path": "tengine/imagemagick/libs", + "classifier": "-libs-el9-aarch64.rpm", + "repository": "thirdparty", + "group": "org.imagemagick" + }, + { + "name": "imagemagick-distribution", + "version": "7.1.0-16-ci-10", + "path": "tengine/imagemagick", + "classifier": "-el9-aarch64.rpm", + "repository": "thirdparty", + "group": "org.imagemagick" + }, + { + "name": "alfresco-transform-imagemagick", + "version": "5.1.4", + "path": "tengine/imagemagick", + "classifier": ".jar", + "repository": "releases", + "group": "org.alfresco" + } ] } } diff --git a/tengine/libreoffice/artifacts.json b/tengine/libreoffice/artifacts.json index 5bcbd54a..c720b08f 100644 --- a/tengine/libreoffice/artifacts.json +++ b/tengine/libreoffice/artifacts.json @@ -17,6 +17,24 @@ "repository": "releases", "group": "org.alfresco" } + ], + "acs74": [ + { + "name": "libreoffice-dist", + "version": "7.2.5", + "path": "tengine/libreoffice", + "classifier": "-linux.gz", + "repository": "thirdparty", + "group": "org.libreoffice" + }, + { + "name": "alfresco-transform-libreoffice", + "version": "5.1.4", + "path": "tengine/libreoffice", + "classifier": ".jar", + "repository": "releases", + "group": "org.alfresco" + } ] } } diff --git a/tengine/misc/artifacts.json b/tengine/misc/artifacts.json index a7cecca8..42d2c9ec 100644 --- a/tengine/misc/artifacts.json +++ b/tengine/misc/artifacts.json @@ -9,6 +9,16 @@ "repository": "releases", "group": "org.alfresco" } + ], + "acs74": [ + { + "name": "alfresco-transform-misc", + "version": "5.1.4", + "path": "tengine/misc", + "classifier": ".jar", + "repository": "releases", + "group": "org.alfresco" + } ] } } diff --git a/tengine/pdfrenderer/artifacts.json b/tengine/pdfrenderer/artifacts.json index e686fde3..a8481c2b 100644 --- a/tengine/pdfrenderer/artifacts.json +++ b/tengine/pdfrenderer/artifacts.json @@ -25,6 +25,32 @@ "repository": "releases", "group": "org.alfresco" } + ], + "acs74": [ + { + "name": "alfresco-pdf-renderer", + "version": "1.2", + "path": "tengine/pdfrenderer", + "classifier": "-linux.tgz", + "repository": "releases", + "group": "org.alfresco" + }, + { + "name": "alfresco-pdf-renderer", + "version": "1.2", + "path": "tengine/pdfrenderer", + "classifier": "-linux-arm.tgz", + "repository": "releases", + "group": "org.alfresco" + }, + { + "name": "alfresco-transform-pdf-renderer", + "version": "5.1.4", + "path": "tengine/pdfrenderer", + "classifier": ".jar", + "repository": "releases", + "group": "org.alfresco" + } ] } } diff --git a/tengine/tika/artifacts.json b/tengine/tika/artifacts.json index 132f24a3..d5ca131d 100644 --- a/tengine/tika/artifacts.json +++ b/tengine/tika/artifacts.json @@ -9,6 +9,16 @@ "repository": "releases", "group": "org.alfresco" } + ], + "acs74": [ + { + "name": "alfresco-transform-tika", + "version": "5.1.4", + "path": "tengine/tika", + "classifier": ".jar", + "repository": "releases", + "group": "org.alfresco" + } ] } } diff --git a/test/74-override.yaml b/test/74-override.yaml new file mode 100644 index 00000000..8e571047 --- /dev/null +++ b/test/74-override.yaml @@ -0,0 +1,39 @@ +services: + alfresco: + image: ${REGISTRY}/${REGISTRY_NAMESPACE}/alfresco-content-repository:${TAG} + transform-router: + image: ${REGISTRY}/${REGISTRY_NAMESPACE}/alfresco-transform-router:${TAG} + transform-core-aio: + image: ${REGISTRY}/${REGISTRY_NAMESPACE}/alfresco-transform-core-aio:${TAG} + shared-file-store: + image: ${REGISTRY}/${REGISTRY_NAMESPACE}/alfresco-shared-file-store:${TAG} + share: + image: ${REGISTRY}/${REGISTRY_NAMESPACE}/alfresco-share:${TAG} + solr6: + image: ${REGISTRY}/${REGISTRY_NAMESPACE}/alfresco-search-service:${TAG} + environment: + # variables specific to image produced by bakery + ALFRESCO_HOST: alfresco + ALFRESCO_PORT: 8080 + SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive" + ALFRESCO_SECURECOMMS: secret + ALFRESCO_SECURECOMMS_SECRET: secret + digital-workspace: + image: ${REGISTRY}/${REGISTRY_NAMESPACE}/alfresco-digital-workspace:${TAG} + environment: + BASE_PATH: / + volumes: + - ./configs/adw.json:/usr/share/nginx/html/app.config.json + control-center: + image: ${REGISTRY}/${REGISTRY_NAMESPACE}/alfresco-control-center:${TAG} + environment: + BASE_PATH: / + volumes: + - ./configs/acc.json:/usr/share/nginx/html/app.config.json + sync-service: + image: ${REGISTRY}/${REGISTRY_NAMESPACE}/alfresco-sync-service:${TAG} +volumes: + shared-file-store-volume: + driver_opts: + type: tmpfs + device: tmpfs diff --git a/test/helm/test-overrides-74.yaml b/test/helm/test-overrides-74.yaml new file mode 100644 index 00000000..0f2475ca --- /dev/null +++ b/test/helm/test-overrides-74.yaml @@ -0,0 +1,24 @@ +alfresco-search: + enabled: true +alfresco-search-enterprise: + enabled: false +elasticsearch: + enabled: false +elasticsearch-audit: + enabled: false +kibana-audit: + enabled: false +alfresco-audit-storage: + enabled: false +dtas: + config: + assertions: + acs: + version: 7.4.2 + modules: + - id: org.alfresco.integrations.google.docs + version: 3.4.2 + installed: true + - id: alfresco-aos-module + version: 1.6.3 + installed: true diff --git a/test/helm/test-overrides.yaml b/test/helm/test-overrides.yaml index b4857a2a..a494b03d 100644 --- a/test/helm/test-overrides.yaml +++ b/test/helm/test-overrides.yaml @@ -7,6 +7,10 @@ share: image: repository: localhost/alfresco/alfresco-share tag: latest +alfresco-search: + image: + repository: localhost/alfresco/alfresco-search-service + tag: latest alfresco-search-enterprise: reindexing: image: diff --git a/tomcat/tomcat_versions.yaml b/tomcat/tomcat_versions.yaml new file mode 100644 index 00000000..aa4f5c8b --- /dev/null +++ b/tomcat/tomcat_versions.yaml @@ -0,0 +1,8 @@ +tomcat9: + major: 9 + version: 9.0.96 + sha512: ef3ac81debbc3a519c43d1fdb1c88ab26a8052af424d81bceccfbd6e663050a06d7aad7960fd5d11c17849829daebbebf33d92ac1158902283d0e534514aab93 +tomcat10: + major: 10 + version: 10.1.31 + sha512: 0e3d423a843e2d9ba4f28a9f0a2f1073d5a1389557dfda041759f8df968bace63cd6948bd76df2727b5133ddb7c33e05dab43cea1d519ca0b6d519461152cce9