mirror of
https://github.com/Alfresco/acs-community-packaging.git
synced 2025-09-10 14:12:09 +00:00
ACS-3844 Migrate to GHA (#1495)
This commit is contained in:
202
.github/workflows/ci.yml
vendored
Normal file
202
.github/workflows/ci.yml
vendored
Normal file
@@ -0,0 +1,202 @@
|
|||||||
|
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.4.0-....) for the docker image to build successfully.
|
||||||
|
RELEASE_VERSION: 7.4.0-A7
|
||||||
|
DEVELOPMENT_VERSION: 7.4.0-A8-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@v3
|
||||||
|
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0
|
||||||
|
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0
|
||||||
|
- name: "Init"
|
||||||
|
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@v3
|
||||||
|
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0
|
||||||
|
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0
|
||||||
|
- name: "Init"
|
||||||
|
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() &&
|
||||||
|
!contains(github.event.head_commit.message, '[skip docker_latest]') &&
|
||||||
|
(github.ref_name == 'master' || contains(github.ref_name, 'release/')) &&
|
||||||
|
github.event_name != 'pull_request'
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0
|
||||||
|
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0
|
||||||
|
- name: "Init"
|
||||||
|
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() &&
|
||||||
|
contains(github.event.head_commit.message, '[release]') &&
|
||||||
|
(github.ref_name == 'master' || contains(github.ref_name, 'release/')) &&
|
||||||
|
github.event_name != 'pull_request'
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0
|
||||||
|
- uses: Alfresco/alfresco-build-tools/.github/actions/setup-java-build@v1.30.0
|
||||||
|
- name: "Init"
|
||||||
|
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@v1
|
||||||
|
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() &&
|
||||||
|
contains(github.event.head_commit.message, '[publish]') &&
|
||||||
|
(github.ref_name == 'master' || contains(github.ref_name, 'release/')) &&
|
||||||
|
github.event_name != 'pull_request'
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- uses: Alfresco/alfresco-build-tools/.github/actions/get-build-info@v1.30.0
|
||||||
|
- name: "Configure AWS credentials"
|
||||||
|
uses: aws-actions/configure-aws-credentials@v1
|
||||||
|
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
|
177
.travis.yml
177
.travis.yml
@@ -1,177 +0,0 @@
|
|||||||
---
|
|
||||||
dist: xenial
|
|
||||||
language: java
|
|
||||||
jdk: openjdk17
|
|
||||||
|
|
||||||
services:
|
|
||||||
- docker
|
|
||||||
|
|
||||||
git:
|
|
||||||
depth: false
|
|
||||||
quiet: true
|
|
||||||
|
|
||||||
cache:
|
|
||||||
directories:
|
|
||||||
- ${HOME}/.m2/repository
|
|
||||||
|
|
||||||
# the cache can grow constantly
|
|
||||||
before_cache: bash scripts/travis/cleanup_cache.sh
|
|
||||||
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
- /release\/.*/
|
|
||||||
- /feature\/.*/
|
|
||||||
- /fix\/.*/
|
|
||||||
|
|
||||||
env:
|
|
||||||
global:
|
|
||||||
- TAS_SCRIPTS=../alfresco-community-repo/packaging/tests/scripts
|
|
||||||
- TAS_ENVIRONMENT=./tests/environment
|
|
||||||
# Release version has to start with real version (7.4.0-....) for the docker image to build successfully.
|
|
||||||
- RELEASE_VERSION=7.4.0-A9
|
|
||||||
- DEVELOPMENT_VERSION=7.4.0-A10-SNAPSHOT
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- name: test
|
|
||||||
if: commit_message !~ /\[skip tests\]/
|
|
||||||
- name: docker_latest
|
|
||||||
if: commit_message !~ /\[skip docker_latest\]/ AND (branch = master OR branch =~ /release\/.*/) AND type != pull_request AND fork = false
|
|
||||||
- name: release
|
|
||||||
if: commit_message =~ /\[release\]/ AND (branch = master OR branch =~ /release\/.*/) AND type != pull_request AND fork = false
|
|
||||||
- name: publish
|
|
||||||
if: commit_message =~ /\[publish\]/ AND (branch = master OR branch =~ /release\/.*/) AND type != pull_request AND fork = false
|
|
||||||
|
|
||||||
before_install: travis_retry bash scripts/travis/init.sh
|
|
||||||
install: travis_retry travis_wait 40 bash scripts/travis/build.sh
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
include:
|
|
||||||
- name: "REST API TAS tests part1"
|
|
||||||
if: commit_message !~ /\[skip tas\]/
|
|
||||||
before_script:
|
|
||||||
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
|
|
||||||
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
|
|
||||||
script:
|
|
||||||
- travis_wait 60 mvn -B install -ntp -f tests/tas-restapi/pom.xml -Pall-tas-tests,run-restapi-part1 -Denvironment=default -DrunBugs=false
|
|
||||||
|
|
||||||
- name: "REST API TAS tests part2"
|
|
||||||
if: commit_message !~ /\[skip tas\]/
|
|
||||||
before_script:
|
|
||||||
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
|
|
||||||
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
|
|
||||||
script:
|
|
||||||
- travis_wait 60 mvn -B install -ntp -f tests/tas-restapi/pom.xml -Pall-tas-tests,run-restapi-part2 -Denvironment=default -DrunBugs=false
|
|
||||||
|
|
||||||
- name: "REST API TAS tests part3"
|
|
||||||
if: commit_message !~ /\[skip tas\]/
|
|
||||||
before_script:
|
|
||||||
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
|
|
||||||
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
|
|
||||||
script:
|
|
||||||
- travis_wait 60 mvn -B install -ntp -f tests/tas-restapi/pom.xml -Pall-tas-tests,run-restapi-part3 -Denvironment=default -DrunBugs=false
|
|
||||||
|
|
||||||
- name: "CMIS TAS tests - BROWSER binding"
|
|
||||||
if: commit_message !~ /\[skip tas\]/
|
|
||||||
before_script:
|
|
||||||
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
|
|
||||||
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
|
|
||||||
script:
|
|
||||||
- travis_wait 40 mvn -B install -ntp -f tests/tas-cmis/pom.xml -Pall-tas-tests,run-cmis-browser -Denvironment=default -DrunBugs=false
|
|
||||||
|
|
||||||
- name: "CMIS TAS tests - ATOM binding"
|
|
||||||
if: commit_message !~ /\[skip tas\]/
|
|
||||||
before_script:
|
|
||||||
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
|
|
||||||
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
|
|
||||||
script:
|
|
||||||
- travis_wait 40 mvn -B install -ntp -f tests/tas-cmis/pom.xml -Pall-tas-tests,run-cmis-atom -Denvironment=default -DrunBugs=false
|
|
||||||
|
|
||||||
- name: "CMIS TAS tests - WEBSERVICES binding"
|
|
||||||
if: commit_message !~ /\[skip tas\]/
|
|
||||||
before_script:
|
|
||||||
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal+transforms.yml
|
|
||||||
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
|
|
||||||
script:
|
|
||||||
- travis_wait 40 mvn -B install -ntp -f tests/tas-cmis/pom.xml -Pall-tas-tests,run-cmis-webservices -Denvironment=default -DrunBugs=false
|
|
||||||
|
|
||||||
- name: "Email TAS tests"
|
|
||||||
if: commit_message !~ /\[skip tas\]/
|
|
||||||
before_script:
|
|
||||||
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal.yml
|
|
||||||
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
|
|
||||||
script:
|
|
||||||
- travis_wait 30 mvn -B install -ntp -f tests/tas-email/pom.xml -Pall-tas-tests -Denvironment=default -DrunBugs=false
|
|
||||||
|
|
||||||
- name: "WebDAV TAS tests"
|
|
||||||
if: commit_message !~ /\[skip tas\]/
|
|
||||||
before_script:
|
|
||||||
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal.yml
|
|
||||||
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
|
|
||||||
script:
|
|
||||||
- travis_wait 20 mvn -B install -ntp -f tests/tas-webdav/pom.xml -Pall-tas-tests -Denvironment=default -DrunBugs=false
|
|
||||||
|
|
||||||
- name: "Integration TAS tests"
|
|
||||||
if: commit_message !~ /\[skip tas\]/
|
|
||||||
before_script:
|
|
||||||
- ${TAS_SCRIPTS}/start-compose.sh ${TAS_ENVIRONMENT}/docker-compose-minimal.yml
|
|
||||||
- ${TAS_SCRIPTS}/wait-for-alfresco-start.sh "http://localhost:8082/alfresco"
|
|
||||||
script:
|
|
||||||
- travis_wait 30 mvn -B install -ntp -f tests/tas-integration/pom.xml -Pall-tas-tests -Denvironment=default -DrunBugs=false
|
|
||||||
|
|
||||||
- name: "Community Distribution Zip content tests"
|
|
||||||
before_script:
|
|
||||||
- travis_retry travis_wait 20 mvn -B -ntp -V clean install -Pags -DskipTests -Dmaven.javadoc.skip=true
|
|
||||||
script:
|
|
||||||
- travis_wait 20 mvn -B install -ntp -f tests/tas-distribution-zip/pom.xml -Prun-distribution-zip-contents-check -DrunBugs=false
|
|
||||||
|
|
||||||
- name: "Update latest images"
|
|
||||||
stage: docker_latest
|
|
||||||
script: travis_retry travis_wait 30 mvn -B -ntp -V clean install -DskipTests -Dmaven.javadoc.skip=true -Pags -Ppush-docker-images
|
|
||||||
|
|
||||||
- name: "Release and Copy to S3 Staging Bucket"
|
|
||||||
stage: release
|
|
||||||
before_script: bash scripts/travis/verify_release_tag.sh
|
|
||||||
script: travis_wait 60 bash scripts/travis/maven_release.sh
|
|
||||||
before_deploy: source scripts/travis/prepare_staging_deploy.sh
|
|
||||||
deploy:
|
|
||||||
- provider: s3
|
|
||||||
access_key_id: "${AWS_STAGING_ACCESS_KEY}"
|
|
||||||
secret_access_key: "${AWS_STAGING_SECRET_KEY}"
|
|
||||||
bucket: "alfresco-artefacts-staging"
|
|
||||||
region: "eu-west-1"
|
|
||||||
skip_cleanup: true
|
|
||||||
acl: private
|
|
||||||
local_dir: "deploy_dir"
|
|
||||||
upload_dir: "alfresco-content-services-community/release/${TRAVIS_BRANCH}/${TRAVIS_BUILD_NUMBER}"
|
|
||||||
on:
|
|
||||||
all_branches: true
|
|
||||||
- provider: s3
|
|
||||||
access_key_id: "${AWS_STAGING_ACCESS_KEY}"
|
|
||||||
secret_access_key: "${AWS_STAGING_SECRET_KEY}"
|
|
||||||
bucket: "alfresco-artefacts-staging"
|
|
||||||
region: "eu-west-1"
|
|
||||||
skip_cleanup: true
|
|
||||||
acl: private
|
|
||||||
local_dir: "deploy_dir_ags"
|
|
||||||
upload_dir: "community/RM/${RELEASE_VERSION}"
|
|
||||||
on:
|
|
||||||
all_branches: true
|
|
||||||
after_deploy:
|
|
||||||
- echo "Finished release and deployed to https://s3.console.aws.amazon.com/s3/buckets/alfresco-artefacts-staging/alfresco-content-services/release/${TRAVIS_BRANCH}/${TRAVIS_BUILD_NUMBER}"
|
|
||||||
|
|
||||||
- name: "Copy to S3 Release Bucket"
|
|
||||||
stage: publish
|
|
||||||
# Nothing to build/install as we are just copying from S3 buckets
|
|
||||||
install: skip
|
|
||||||
script: skip
|
|
||||||
before_deploy: pip install awscli
|
|
||||||
deploy:
|
|
||||||
- provider: script
|
|
||||||
script: bash scripts/travis/copy_to_release_bucket.sh
|
|
||||||
on:
|
|
||||||
all_branches: true
|
|
||||||
- provider: script
|
|
||||||
script: bash scripts/travis/copy_ags_to_release_bucket.sh
|
|
||||||
on:
|
|
||||||
all_branches: true
|
|
8
scripts/travis/build.sh → scripts/ci/build.sh
Normal file → Executable file
8
scripts/travis/build.sh → scripts/ci/build.sh
Normal file → Executable file
@@ -16,13 +16,13 @@ if [ "${COM_DEPENDENCY_VERSION}" != "$(retrievePomParentVersion)" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Prevent merging of any SNAPSHOT dependencies into the master or the release/* branches
|
# Prevent merging of any SNAPSHOT dependencies into the master or the release/* branches
|
||||||
if [[ $(isPullRequestBuild) && "${COM_DEPENDENCY_VERSION}" =~ ^.+-SNAPSHOT$ && "${TRAVIS_BRANCH}" =~ ^master$|^release/.+$ ]] ; then
|
if [[ $(isPullRequestBuild) && "${COM_DEPENDENCY_VERSION}" =~ ^.+-SNAPSHOT$ && "${BRANCH_NAME}" =~ ^master$|^release/.+$ ]] ; then
|
||||||
printf "PRs with SNAPSHOT dependencies are not allowed into master or release branches\n"
|
printf "PRs with SNAPSHOT dependencies are not allowed into master or release branches\n"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Prevent release jobs from starting when there are SNAPSHOT upstream dependencies
|
# Prevent release jobs from starting when there are SNAPSHOT upstream dependencies
|
||||||
if [[ "${COM_DEPENDENCY_VERSION}" =~ ^.+-SNAPSHOT$ ]] && [ "${TRAVIS_BUILD_STAGE_NAME,,}" = "release" ] ; then
|
if [[ "${COM_DEPENDENCY_VERSION}" =~ ^.+-SNAPSHOT$ ]] && [ "${JOB_NAME,,}" = "release" ] ; then
|
||||||
printf "Cannot release project with SNAPSHOT dependencies!\n"
|
printf "Cannot release project with SNAPSHOT dependencies!\n"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@@ -41,13 +41,13 @@ SHARE_DEPENDENCY_VERSION="$(retrievePomProperty "dependency.alfresco-community-s
|
|||||||
SHARE_IMAGE=$([[ "${SHARE_DEPENDENCY_VERSION}" =~ ^.+-SNAPSHOT$ ]] && echo "-Dshare.image.tag=latest" || echo)
|
SHARE_IMAGE=$([[ "${SHARE_DEPENDENCY_VERSION}" =~ ^.+-SNAPSHOT$ ]] && echo "-Dshare.image.tag=latest" || echo)
|
||||||
|
|
||||||
# Prevent merging of any SNAPSHOT dependencies into the master or the release/* branches
|
# Prevent merging of any SNAPSHOT dependencies into the master or the release/* branches
|
||||||
if [[ $(isPullRequestBuild) && "${SHARE_DEPENDENCY_VERSION}" =~ ^.+-SNAPSHOT$ && "${TRAVIS_BRANCH}" =~ ^master$|^release/.+$ ]] ; then
|
if [[ $(isPullRequestBuild) && "${SHARE_DEPENDENCY_VERSION}" =~ ^.+-SNAPSHOT$ && "${BRANCH_NAME}" =~ ^master$|^release/.+$ ]] ; then
|
||||||
printf "PRs with SNAPSHOT dependencies are not allowed into master or release branches\n"
|
printf "PRs with SNAPSHOT dependencies are not allowed into master or release branches\n"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Prevent release jobs from starting when there are SNAPSHOT upstream dependencies
|
# Prevent release jobs from starting when there are SNAPSHOT upstream dependencies
|
||||||
if [[ "${SHARE_DEPENDENCY_VERSION}" =~ ^.+-SNAPSHOT$ ]] && [ "${TRAVIS_BUILD_STAGE_NAME,,}" = "release" ] ; then
|
if [[ "${SHARE_DEPENDENCY_VERSION}" =~ ^.+-SNAPSHOT$ ]] && [ "${JOB_NAME,,}" = "release" ] ; then
|
||||||
printf "Cannot release project with SNAPSHOT dependencies!\n"
|
printf "Cannot release project with SNAPSHOT dependencies!\n"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
16
scripts/travis/build_functions.sh → scripts/ci/build_functions.sh
Normal file → Executable file
16
scripts/travis/build_functions.sh → scripts/ci/build_functions.sh
Normal file → Executable file
@@ -2,11 +2,11 @@
|
|||||||
set +vx
|
set +vx
|
||||||
|
|
||||||
function isPullRequestBuild() {
|
function isPullRequestBuild() {
|
||||||
test "${TRAVIS_PULL_REQUEST}" != "false"
|
test "${PULL_REQUEST}" != "false"
|
||||||
}
|
}
|
||||||
|
|
||||||
function isBranchBuild() {
|
function isBranchBuild() {
|
||||||
test "${TRAVIS_PULL_REQUEST}" = "false"
|
test "${PULL_REQUEST}" = "false"
|
||||||
}
|
}
|
||||||
|
|
||||||
function cloneRepo() {
|
function cloneRepo() {
|
||||||
@@ -82,15 +82,9 @@ function remoteBranchExists() {
|
|||||||
function identifyUpstreamSourceBranch() {
|
function identifyUpstreamSourceBranch() {
|
||||||
local UPSTREAM_REPO="${1}"
|
local UPSTREAM_REPO="${1}"
|
||||||
|
|
||||||
# if it's a pull request, use the source branch name (if it exists)
|
# use the current branch name (or in case of PRs, the source branch name)
|
||||||
if isPullRequestBuild && remoteBranchExists "${UPSTREAM_REPO}" "${TRAVIS_PULL_REQUEST_BRANCH}" ; then
|
if remoteBranchExists "${UPSTREAM_REPO}" "${BRANCH_NAME}" ; then
|
||||||
echo "${TRAVIS_PULL_REQUEST_BRANCH}"
|
echo "${BRANCH_NAME}"
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# otherwise use the current branch name (or in case of PRs, the target branch name)
|
|
||||||
if remoteBranchExists "${UPSTREAM_REPO}" "${TRAVIS_BRANCH}" ; then
|
|
||||||
echo "${TRAVIS_BRANCH}"
|
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
0
scripts/travis/cleanup_cache.sh → scripts/ci/cleanup_cache.sh
Normal file → Executable file
0
scripts/travis/cleanup_cache.sh → scripts/ci/cleanup_cache.sh
Normal file → Executable file
0
scripts/travis/copy_ags_to_release_bucket.sh → scripts/ci/copy_ags_to_release_bucket.sh
Normal file → Executable file
0
scripts/travis/copy_ags_to_release_bucket.sh → scripts/ci/copy_ags_to_release_bucket.sh
Normal file → Executable file
@@ -12,8 +12,8 @@ if [ -z "${RELEASE_VERSION}" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SOURCE="s3://alfresco-artefacts-staging/alfresco-content-services-community/release/${TRAVIS_BRANCH}/${TRAVIS_BUILD_NUMBER}"
|
SOURCE="s3://alfresco-artefacts-staging/alfresco-content-services-community/release/${BRANCH_NAME}/${BUILD_NUMBER}"
|
||||||
DESTINATION="s3://eu.dl.alfresco.com/release/community/${RELEASE_VERSION}-build-${TRAVIS_BUILD_NUMBER}"
|
DESTINATION="s3://eu.dl.alfresco.com/release/community/${RELEASE_VERSION}-build-${BUILD_NUMBER}"
|
||||||
|
|
||||||
printf "\n%s\n%s\n" "${SOURCE}" "${DESTINATION}"
|
printf "\n%s\n%s\n" "${SOURCE}" "${DESTINATION}"
|
||||||
|
|
2
scripts/travis/init.sh → scripts/ci/init.sh
Normal file → Executable file
2
scripts/travis/init.sh → scripts/ci/init.sh
Normal file → Executable file
@@ -5,7 +5,7 @@ set -vex
|
|||||||
pushd "$(dirname "${BASH_SOURCE[0]}")/../../"
|
pushd "$(dirname "${BASH_SOURCE[0]}")/../../"
|
||||||
|
|
||||||
# Maven Setup
|
# Maven Setup
|
||||||
mkdir -p "${HOME}/.m2" && cp -f .travis.settings.xml "${HOME}/.m2/settings.xml"
|
mkdir -p "${HOME}/.m2" && cp -f .github/.ci.settings.xml "${HOME}/.m2/settings.xml"
|
||||||
find "${HOME}/.m2/repository/" -type d -name "*-SNAPSHOT*" | xargs -r -l rm -rf
|
find "${HOME}/.m2/repository/" -type d -name "*-SNAPSHOT*" | xargs -r -l rm -rf
|
||||||
|
|
||||||
# Docker Logins
|
# Docker Logins
|
@@ -11,16 +11,17 @@ if [ -z "${RELEASE_VERSION}" ] || [ -z "${DEVELOPMENT_VERSION}" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Use full history for release
|
# Use full history for release
|
||||||
git checkout -B "${TRAVIS_BRANCH}"
|
git checkout -B "${BRANCH_NAME}"
|
||||||
# Add email to link commits to user
|
# Define git identity for commits
|
||||||
git config user.email "${GIT_EMAIL}"
|
git config user.email "${GIT_EMAIL}"
|
||||||
|
git config user.name "${GIT_USERNAME}"
|
||||||
|
|
||||||
mvn -B \
|
mvn -B \
|
||||||
-ntp \
|
-ntp \
|
||||||
-Prelease,all-tas-tests -Pags \
|
-Prelease,all-tas-tests -Pags \
|
||||||
-DreleaseVersion="${RELEASE_VERSION}" \
|
-DreleaseVersion="${RELEASE_VERSION}" \
|
||||||
-DdevelopmentVersion="${DEVELOPMENT_VERSION}" \
|
-DdevelopmentVersion="${DEVELOPMENT_VERSION}" \
|
||||||
"-Darguments=-Prelease,all-tas-tests -Pags -DskipTests -Dbuild-number=${TRAVIS_BUILD_NUMBER}" \
|
"-Darguments=-Prelease,all-tas-tests -Pags -DskipTests -Dbuild-number=${BUILD_NUMBER}" \
|
||||||
release:clean release:prepare release:perform \
|
release:clean release:prepare release:perform \
|
||||||
-DscmCommentPrefix="[maven-release-plugin][skip ci] " \
|
-DscmCommentPrefix="[maven-release-plugin][skip ci] " \
|
||||||
-Dusername="${GIT_USERNAME}" \
|
-Dusername="${GIT_USERNAME}" \
|
Reference in New Issue
Block a user