88 lines (85 loc) · 3.44 KB
/
release-process.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
name: release-process-automation
on:
release:
types: [published]
jobs:
release-process:
name: Release Process Automation
runs-on: ubuntu-latest
env:
DOT_CICD_BRANCH: release-22.01
GITHUB_USER_TOKEN: ${{ secrets.CICD_GITHUB_TOKEN }}
PULL_REQUEST: ${{ github.event.number }}
REPO_USERNAME: ${{ secrets.EE_REPO_USERNAME }}
REPO_PASSWORD: ${{ secrets.EE_REPO_PASSWORD }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
NODE_VERSION: 12
DEBUG: true
steps:
- name: GITHUB CONTEXT
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "${GITHUB_CONTEXT}"
if: env.DEBUG == 'true'
- name: Checkout core
uses: actions/checkout@v2
- name: Set Common Vars
run: |
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
BUILD_ID="${{ github.head_ref }}"
else
BUILD_ID=$(basename "${{ github.ref }}")
fi
BUILD_HASH=$(git log -1 --pretty=%h)
eval $(cat dotCMS/gradle.properties| grep dotcmsReleaseVersion)
DOTCMS_VERSION="${dotcmsReleaseVersion}"
if [[ ${BUILD_ID} =~ ^release-[0-9]{2}.[0-9]{2}(.[0-9]{1,2})?$|^v[0-9]{2}.[0-9]{2}(.[0-9]{1,2})?$ ]]; then
IS_RELEASE='true'
DRY_RUN='false'
else
IS_RELEASE='false'
DRY_RUN='true'
fi
echo "BUILD_ID=${BUILD_ID}" >> $GITHUB_ENV
echo "EE_BUILD_ID=${BUILD_ID}" >> $GITHUB_ENV
echo "BUILD_HASH=${BUILD_HASH}" >> $GITHUB_ENV
echo "DOTCMS_VERSION=${DOTCMS_VERSION}" >> $GITHUB_ENV
echo "IS_RELEASE=${IS_RELEASE}" >> $GITHUB_ENV
- name: Prepare dot-cicd
run: |
sh -c "$(curl -fsSL https://raw.githubusercontent.com/dotCMS/dot-cicd/${DOT_CICD_BRANCH}/seed/install-dot-cicd.sh)"
- name: Run DotCMS Release Docker Image
run: |
../dotcicd/library/pipeline.sh runRelease
- name: Discover docker tags
id: discover-docker-tags
uses: dotcms/discover-docker-tags-action@main
with:
version: ${{ env.DOTCMS_VERSION }}
hash: ${{ env.BUILD_HASH }}
update_stable: ${{ env.IS_RELEASE }}
also_latest: ${{ env.IS_RELEASE }}
- name: Publish docker image
id: publish-docker-image
uses: dotcms/publish-docker-image-action@main
with:
dot_cicd_branch: ${{ env.DOT_CICD_BRANCH }}
build_id: ${{ env.BUILD_ID }}
tags: ${{ steps.discover-docker-tags.outputs.discovered_tags }}
github_user_token: ${{ secrets.CICD_GITHUB_TOKEN }}
docker_hub_username: ${{ secrets.DOCKER_USERNAME }}
docker_hub_token: ${{ secrets.DOCKER_TOKEN }}
dry_run: ${{ env.DRY_RUN }}
- name: Slack Notification
if: success() && env.IS_RELEASE == 'true'
uses: rtCamp/action-slack-notify@master
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_USERNAME: dotcms-bot
SLACK_TITLE: "Important news!"
SLACK_MSG_AUTHOR: " "
MSG_MINIMAL: true
SLACK_FOOTER: ""
SLACK_ICON: https://avatars.slack-edge.com/2021-02-18/1760490973606_047c511fc4610eab31e5_88.png
SLACK_MESSAGE: "<!channel> This automated script is excited to announce the release of a new version of dotCMS - dotCMS ${{ env.BUILD_ID }} :tada:"