-
Notifications
You must be signed in to change notification settings - Fork 1
138 lines (137 loc) · 5.09 KB
/
release.yml
File metadata and controls
138 lines (137 loc) · 5.09 KB
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
name: Release
on:
push:
branches:
- master
env:
RELEASE_DIR: release
RELEASE_PROPERTIES_FILE: release/release.properties
RELEASE_PAYLOAD_FILE: release/payload.json
jobs:
release:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-18.04]
steps:
- uses: AutoModality/action-clean@v1.1.0
- name: Checkout
uses: actions/checkout@v2
- name: Semantic Release
id: semantic
uses: cycjimmy/semantic-release-action@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Write release result to file
run: mkdir ${{ env.RELEASE_DIR }}
- name: Write Published
uses: christian-draeger/write-properties@1.0.1
with:
path: ${{ env.RELEASE_PROPERTIES_FILE }}
property: 'published'
value: ${{ steps.semantic.outputs.new_release_published }}
- name: Write Version
uses: christian-draeger/write-properties@1.0.1
if: steps.semantic.outputs.new_release_published == 'true'
with:
path: ${{ env.RELEASE_PROPERTIES_FILE }}
property: 'version'
value: ${{ steps.semantic.outputs.new_release_version }}
- name: Write Release Payload
run: |
#retrieve package name from changelog guaranteed to be first characters ( split on space, choose first result)
package_name=$(head -1 debian/changelog | awk -F' ' '{print $1}')
echo "{\"package\":\"${package_name}\", \"new_release_version\": \"${{ steps.semantic.outputs.new_release_version }}\", \"new_release_major_version\": \"${{ steps.semantic.outputs.new_release_major_version }}\", \"new_release_minor_version\":\"${{ steps.semantic.outputs.new_release_minor_version }}\",\"new_release_patch_version\":\"${{ steps.semantic.outputs.new_release_patch_version }}\"}" > ${{ env.RELEASE_PAYLOAD_FILE }}
- name: Share release file with other jobs
uses: actions/upload-artifact@v1
with:
name: release
path: '${{ env.RELEASE_DIR }}'
release-package:
needs: release
runs-on: [x64, self-hosted,linux,build]
name: Package if released
steps:
- uses: AutoModality/action-clean@v1.1.0
- name: Checkout
uses: actions/checkout@v2
- name: Download release
uses: actions/download-artifact@v1
with:
name: release
path: ${{ env.RELEASE_DIR }}
- name: Read Published
id: published
uses: christian-draeger/read-properties@1.0.1
with:
path: ${{ env.RELEASE_PROPERTIES_FILE }}
property: 'published'
- name: Read Version if published
id: version
if: steps.published.outputs.value == 'true'
uses: christian-draeger/read-properties@1.0.1
with:
path: ${{ env.RELEASE_PROPERTIES_FILE }}
property: 'version'
- name: Deploy if published
if: steps.published.outputs.value == 'true'
id: deploy
run: amros dev docker run -dm --command="deploy-amros ${{ secrets.DEVELOPER_PASSWORD }} ${{ steps.version.outputs.value }} release ${{ secrets.CLOUDSMITH_API_KEY }}"
release-package-arm:
needs: release
runs-on: [arm64,self-hosted,linux, cuda]
steps:
- uses: AutoModality/action-clean@v1.1.0
- uses: actions/checkout@v2
- name: Download release
uses: actions/download-artifact@v1
with:
name: release
path: ${{ env.RELEASE_DIR }}
- name: Read Published
id: published
uses: christian-draeger/read-properties@1.0.1
with:
path: ${{ env.RELEASE_PROPERTIES_FILE }}
property: 'published'
- name: Read Version if published
id: version
if: steps.published.outputs.value == 'true'
uses: christian-draeger/read-properties@1.0.1
with:
path: ${{ env.RELEASE_PROPERTIES_FILE }}
property: 'version'
- name: Deploy
id: deploy
if: steps.published.outputs.value == 'true'
run: deploy-amros ${{ secrets.DEVELOPER_PASSWORD }} ${{ steps.version.outputs.value }} release ${{ secrets.CLOUDSMITH_API_KEY }}
notify-amros:
needs:
- release-package
- release-package-arm
runs-on: ubuntu-latest
name: Notify AMROS
steps:
- name: Download release
uses: actions/download-artifact@v1
with:
name: release
path: ${{ env.RELEASE_DIR }}
- name: Read Published
id: published
uses: christian-draeger/read-properties@1.0.1
with:
path: ${{ env.RELEASE_PROPERTIES_FILE }}
property: 'published'
- name: Payload env
run: |
payload=$(cat ${{ env.RELEASE_PAYLOAD_FILE }} )
echo "RELEASE_PAYLOAD=$payload" >> $GITHUB_ENV
- name: Notify AMROS of Release
if: steps.published.outputs.value == 'true'
uses: peter-evans/repository-dispatch@v1
with:
token: ${{ secrets.AMGITBOT_PAT }}
repository: AutoModality/amros
event-type: package-released
client-payload: "${{ env.RELEASE_PAYLOAD }}"