ACS-8670 Deal with upcoming GitHub Actions deprecations #633
Workflow file for this run
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: ACS Community Packaging CI | |
on: | |
pull_request: | |
branches: | |
- master | |
- release/** | |
- feature/** | |
- fix/** | |
push: | |
branches: | |
- master | |
- release/** | |
- feature/** | |
- fix/** | |
workflow_dispatch: | |
env: | |
GIT_USERNAME: ${{ secrets.BOT_GITHUB_USERNAME }} | |
GIT_EMAIL: ${{ secrets.BOT_GITHUB_EMAIL }} | |
GIT_PASSWORD: ${{ secrets.BOT_GITHUB_TOKEN }} | |
DOCKERHUB_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} | |
DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }} | |
GITHUB_ACTIONS_DEPLOY_TIMEOUT: 60 | |
MAVEN_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} | |
MAVEN_USERNAME: ${{ secrets.NEXUS_USERNAME }} | |
QUAY_PASSWORD: ${{ secrets.QUAY_PASSWORD }} | |
QUAY_USERNAME: ${{ secrets.QUAY_USERNAME }} | |
TAS_ENVIRONMENT: ./tests/environment | |
TAS_SCRIPTS: ../alfresco-community-repo/packaging/tests/scripts | |
# Release version has to start with real version (7.3.0-....) for the docker image to build successfully. | |
RELEASE_VERSION: 7.3.2 | |
DEVELOPMENT_VERSION: 7.3.3-A1-SNAPSHOT | |
jobs: | |
tas_tests: | |
name: ${{ matrix.testSuite }} TAS tests | |
runs-on: ubuntu-latest | |
if: ${{ !contains(github.event.head_commit.message, '[skip tas]') && !contains(github.event.head_commit.message, '[skip tests]') }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- testSuite: REST API part1 | |
pom: tests/tas-restapi/pom.xml | |
profiles: all-tas-tests,run-restapi-part1 | |
compose-file: docker-compose-minimal+transforms.yml | |
- testSuite: REST API part2 | |
pom: tests/tas-restapi/pom.xml | |
profiles: all-tas-tests,run-restapi-part2 | |
compose-file: docker-compose-minimal+transforms.yml | |
- testSuite: REST API part3 | |
pom: tests/tas-restapi/pom.xml | |
profiles: all-tas-tests,run-restapi-part3 | |
compose-file: docker-compose-minimal+transforms.yml | |
- testSuite: CMIS (BROWSER binding) | |
pom: tests/tas-cmis/pom.xml | |
profiles: all-tas-tests,run-cmis-browser | |
compose-file: docker-compose-minimal+transforms.yml | |
- testSuite: CMIS (ATOM binding) | |
pom: tests/tas-cmis/pom.xml | |
profiles: all-tas-tests,run-cmis-atom | |
compose-file: docker-compose-minimal+transforms.yml | |
- testSuite: CMIS (WEBSERVICES binding) | |
pom: tests/tas-cmis/pom.xml | |
profiles: all-tas-tests,run-cmis-webservices | |
compose-file: docker-compose-minimal+transforms.yml | |
- testSuite: Email | |
pom: tests/tas-email/pom.xml | |
profiles: all-tas-tests | |
compose-file: docker-compose-minimal.yml | |
- testSuite: WebDAV | |
pom: tests/tas-webdav/pom.xml | |
profiles: all-tas-tests | |
compose-file: docker-compose-minimal.yml | |
- testSuite: Integration | |
pom: tests/tas-integration/pom.xml | |
profiles: all-tas-tests | |
compose-file: docker-compose-minimal.yml | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- name: "Init" | |
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} | |
run: | | |
bash ./scripts/ci/init.sh | |
bash ./scripts/ci/build.sh | |
- name: "Setup the environment" | |
run: | | |
${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/${{ matrix.compose-file }} | |
${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco" | |
- name: "Test" | |
run: mvn -B install -ntp -f ${{ matrix.pom }} -P${{ matrix.profiles }} -Denvironment=default -DrunBugs=false | |
- name: "Clean Maven cache" | |
run: bash ./scripts/ci/cleanup_cache.sh | |
community_zip_tests: | |
name: Community Distribution Zip content tests | |
runs-on: ubuntu-latest | |
if: "!contains(github.event.head_commit.message, '[skip tests]')" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- name: "Init" | |
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} | |
run: | | |
bash ./scripts/ci/init.sh | |
bash ./scripts/ci/build.sh | |
- name: "Build" | |
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} | |
run: mvn -B -ntp -V clean install -Pags -DskipTests -Dmaven.javadoc.skip=true | |
- name: "Test" | |
run: mvn -B install -ntp -f tests/tas-distribution-zip/pom.xml -Prun-distribution-zip-contents-check -DrunBugs=false | |
- name: "Clean Maven cache" | |
run: bash ./scripts/ci/cleanup_cache.sh | |
docker_latest: | |
name: Update latest Docker images | |
runs-on: ubuntu-latest | |
needs: [tas_tests, community_zip_tests] | |
if: > | |
!(failure() || cancelled()) && | |
!contains(github.event.head_commit.message, '[skip docker_latest]') && | |
(github.ref_name == 'master' || startsWith(github.ref_name, 'release/')) && | |
github.event_name != 'pull_request' | |
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" | |
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} | |
run: | | |
bash ./scripts/ci/init.sh | |
bash ./scripts/ci/build.sh | |
- name: "Push Docker images" | |
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} | |
run: mvn -B -ntp -V clean install -DskipTests -Dmaven.javadoc.skip=true -Pags -Ppush-docker-images | |
- name: "Clean Maven cache" | |
run: bash ./scripts/ci/cleanup_cache.sh | |
release: | |
name: Release and Copy to S3 Staging Bucket | |
runs-on: ubuntu-latest | |
needs: [docker_latest] | |
if: > | |
!(failure() || cancelled()) && | |
contains(github.event.head_commit.message, '[release]') && | |
(github.ref_name == 'master' || startsWith(github.ref_name, 'release/')) && | |
github.event_name != 'pull_request' | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- 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" | |
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} | |
run: | | |
bash ./scripts/ci/init.sh | |
bash ./scripts/ci/build.sh | |
- name: "Release" | |
timeout-minutes: ${{ fromJSON(env.GITHUB_ACTIONS_DEPLOY_TIMEOUT) }} | |
run: | | |
bash scripts/ci/verify_release_tag.sh | |
bash scripts/ci/maven_release.sh | |
source scripts/ci/prepare_staging_deploy.sh | |
- name: "Clean Maven cache" | |
run: bash ./scripts/ci/cleanup_cache.sh | |
- name: "Configure AWS credentials" | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_S3_STAGING_ACCESS_KEY }} | |
aws-secret-access-key: ${{ secrets.AWS_S3_STAGING_SECRET_KEY }} | |
aws-region: eu-west-1 | |
- name: "Deploy to S3 Staging Bucket" | |
run: | | |
aws s3 cp --acl private --recursive ./deploy_dir s3://alfresco-artefacts-staging/alfresco-content-services-community/release/${BRANCH_NAME}/${BUILD_NUMBER} | |
aws s3 cp --acl private --recursive ./deploy_dir_ags s3://alfresco-artefacts-staging/community/RM/${RELEASE_VERSION} | |
echo "Finished release and deployed to https://s3.console.aws.amazon.com/s3/buckets/alfresco-artefacts-staging/alfresco-content-services-community/release/${BRANCH_NAME}/${BUILD_NUMBER}" | |
publish: | |
name: Copy to S3 Release Bucket | |
runs-on: ubuntu-latest | |
needs: [release] | |
if: > | |
!(failure() || cancelled()) && | |
contains(github.event.head_commit.message, '[publish]') && | |
(github.ref_name == 'master' || startsWith(github.ref_name, 'release/')) && | |
github.event_name != 'pull_request' | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: Alfresco/alfresco-build-tools/.github/actions/[email protected] | |
- name: "Configure AWS credentials" | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_S3_RELEASE_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_S3_RELEASE_SECRET_ACCESS_KEY }} | |
aws-region: eu-west-1 | |
- name: "Deploy to S3 Release Bucket" | |
run: | | |
bash scripts/ci/copy_to_release_bucket.sh | |
bash scripts/ci/copy_ags_to_release_bucket.sh |