-
Notifications
You must be signed in to change notification settings - Fork 467
141 lines (128 loc) · 4.78 KB
/
publish_dotcms_ui.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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
name: Publish to Dotcms UI
on:
push:
branches:
- release-*
- master
jobs:
changes:
runs-on: ubuntu-latest
outputs:
dotcms-ui: ${{ steps.filter.outputs.dotcms-ui }}
steps:
- name: Checkout core
uses: actions/checkout@v3
- name: Get specific changed files
uses: dorny/paths-filter@v2
id: filter
with:
base: ${{ github.ref }}
list-files: "json"
working-directory: "core-web"
filters: |
dotcms-ui:
- 'core-web/apps/dotcms-ui/src/**'
- 'core-web/libs/!(dotcms-webcomponents/**)/**'
- name: Changes found
if: steps.filter.outputs.dotcms-ui == 'true'
run: |
cd core-web
echo "Found Dotcms-UI files changed."
echo ${{ steps.filter.outputs.dotcms-ui }}
- name: No changes found
if: steps.filter.outputs.dotcms-ui == 'false'
run: |
echo "No changes found in Dotcms-UI"
publish:
needs: changes
if: ${{ needs.changes.outputs.dotcms-ui == 'true' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
persist-credentials: false
fetch-depth: 1
ref: ${{ github.ref_name }}
- name: Configuring Node.js
uses: actions/setup-node@v2-beta
with:
node-version: "16.13.2"
- name: Installing dependencies
run: |
cd core-web
npm install
- name: Version Bump - dotcms-ui - if it's Master/Release Branch
run: |
# Get Branch Name
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
branchName="${{ github.head_ref }}"
else
branchName=$(basename "${{ github.ref }}")
fi
echo "******version brach name: " $branchName
# Checks if branch is release or master
if [[ $branchName == *master* ]]; then
preReleaseTag=next
elif [[ $branchName == *release* ]]; then
preReleaseTag=rc
fi
echo "******tag brach name: " $preReleaseTag
# Get version from package.json
cd core-web
pkgVersion=`awk -F'"' '/"version": ".+"/{ print $4; exit; }' package.json`
arrIN=(${pkgVersion//./ })
# Bump version
if [[ $pkgVersion == *$preReleaseTag* ]]; then
preReleaseVersion=${arrIN[-1]}
pkgVersion="${arrIN[0]}.${arrIN[1]}.0-$preReleaseTag.$((preReleaseVersion+1))"
else
pkgVersion="${arrIN[0]}.${arrIN[1]}.0-$preReleaseTag.0"
fi
sed -i -E "s/\"version\": \".*\"/\"version\": \"$pkgVersion\"/g" ./package.json
# Commits new version
git config --global user.email "[email protected]"
git config --global user.name "victoralfaro-dotcms"
git add package.json
git commit -m "CI: bumps version to $pkgVersion [skip ci]"
git push https://victoralfaro-dotcms:${{ secrets.CICD_GITHUB_TOKEN }}@github.com/dotcms/core
- name: Build dotcms-ui with deps
run: |
cd core-web
npm run nx build dotcms-webcomponents && npm run nx build dotcms-ui -- --prod
cp package.json ./dist/apps/dotcms-ui/package.json
- name: "Publish to npm"
run: |
cd core-web
## We need to copy prepare for publish because it will look for it in one-level-down
## core-web folder
mkdir dist/apps/core-web
cp prepare.js ./dist/apps/core-web/prepare.js
npm set //registry.npmjs.org/:_authToken ${{ secrets.NPM_TOKEN }}
cd dist/apps/dotcms-ui
if [[ $(basename "${{ github.ref }}") =~ ^release-.* ]]; then
npm publish --tag rc
fi
if [[ $(basename "${{ github.ref }}") =~ ^master ]]; then
npm publish --tag next
fi
- name: Slack Notification Failure
if: failure()
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.UI_SLACK_WEBHOOK }}
SLACK_USERNAME: dotBot
SLACK_ICON: https://avatars.slack-edge.com/2020-09-21/1362682893351_5b474f175640cf5f5912_72.png
SLACK_COLOR: "#ff2400"
SLACK_TITLE: "dotcms-ui publish failed"
SLACK_FOOTER: ${{ env.PULL_REQUEST_URL }}
- name: Slack Notification Success
if: success()
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.UI_SLACK_WEBHOOK }}
SLACK_USERNAME: dotBot
SLACK_ICON: https://avatars.slack-edge.com/2020-09-21/1362682893351_5b474f175640cf5f5912_72.png
SLACK_COLOR: "#5E7D00"
SLACK_TITLE: "dotcms-ui publish success"
SLACK_FOOTER: ${{ env.PULL_REQUEST_URL }}