33 push :
44 branches :
55 - master
6+ env :
7+ RELEASE_DIR : release
8+ RELEASE_PROPERTIES_FILE : release/release.properties
9+ RELEASE_PAYLOAD_FILE : release/payload.json
610jobs :
7- package-cuda :
11+ release :
12+ runs-on : ${{ matrix.os }}
13+ strategy :
14+ matrix :
15+ os : [ubuntu-18.04]
16+ steps :
17+ - uses : AutoModality/action-clean@v1.1.0
18+ - name : Checkout
19+ uses : actions/checkout@v2
20+ - name : Semantic Release
21+ id : semantic
22+ uses : cycjimmy/semantic-release-action@v2
23+ env :
24+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
25+ - name : Write release result to file
26+ run : mkdir ${{ env.RELEASE_DIR }}
27+ - name : Write Published
28+ uses : christian-draeger/write-properties@1.0.1
29+ with :
30+ path : ${{ env.RELEASE_PROPERTIES_FILE }}
31+ property : ' published'
32+ value : ${{ steps.semantic.outputs.new_release_published }}
33+ - name : Write Version
34+ uses : christian-draeger/write-properties@1.0.1
35+ if : steps.semantic.outputs.new_release_published == 'true'
36+ with :
37+ path : ${{ env.RELEASE_PROPERTIES_FILE }}
38+ property : ' version'
39+ value : ${{ steps.semantic.outputs.new_release_version }}
40+ - name : Write Release Payload
41+ run : |
42+ #retrieve package name from changelog guaranteed to be first characters ( split on space, choose first result)
43+ package_name=$(head -1 debian/changelog | awk -F' ' '{print $1}')
44+ 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 }}
45+ - name : Share release file with other jobs
46+ uses : actions/upload-artifact@v1
47+ with :
48+ name : release
49+ path : ' ${{ env.RELEASE_DIR }}'
50+ release-package-arm :
51+ needs : release
852 runs-on : [arm64,self-hosted,linux, cuda]
953 steps :
1054 - uses : AutoModality/action-clean@v1.1.0
1155 - uses : actions/checkout@v2
12- - uses : rlespinasse/github-slug-action@3.1.0 # for GITHUB_REF_SLUG
13- - name : Package
14- run : |
15- AM_PLATFORM=dji_m300 amros packages install -y --password=${{ secrets.BUILD_PASSWORD }}
16- echo ${{ secrets.BUILD_PASSWORD }} | sudo -S whoami && source /opt/ros/melodic/setup.bash && amros dev build deb --clean --version="4.0.100${{ github.run_number }}"
56+ - name : Download release
57+ uses : actions/download-artifact@v1
58+ with :
59+ name : release
60+ path : ${{ env.RELEASE_DIR }}
61+ - name : Read Published
62+ id : published
63+ uses : christian-draeger/read-properties@1.0.1
64+ with :
65+ path : ${{ env.RELEASE_PROPERTIES_FILE }}
66+ property : ' published'
67+ - name : Read Version if published
68+ id : version
69+ if : steps.published.outputs.value == 'true'
70+ uses : christian-draeger/read-properties@1.0.1
71+ with :
72+ path : ${{ env.RELEASE_PROPERTIES_FILE }}
73+ property : ' version'
1774 - name : Deploy
1875 id : deploy
19- uses : AutoModality/action-cloudsmith@0.2.0
20- with :
21- api-key : ${{ secrets.CLOUDSMITH_API_KEY }}
22- command : ' push'
23- format : ' deb'
24- owner : ' automodality'
25- repo : ' release'
26- distro : ' ubuntu'
27- release : ' bionic'
28- file : ' ros-melodic-dji-osdk-ros_4.0.100${{ github.run_number }}_arm64.deb' # version must match package phase
76+ if : steps.published.outputs.value == 'true'
77+ run : deploy-amros ${{ secrets.DEVELOPER_PASSWORD }} ${{ steps.version.outputs.value }} release ${{ secrets.CLOUDSMITH_API_KEY }}
78+ notify-amros :
79+ needs :
80+ - release-package-arm
81+ runs-on : ubuntu-latest
82+ name : Notify AMROS
83+ steps :
84+ - name : Download release
85+ uses : actions/download-artifact@v1
86+ with :
87+ name : release
88+ path : ${{ env.RELEASE_DIR }}
89+ - name : Read Published
90+ id : published
91+ uses : christian-draeger/read-properties@1.0.1
92+ with :
93+ path : ${{ env.RELEASE_PROPERTIES_FILE }}
94+ property : ' published'
95+ - name : Payload env
96+ run : |
97+ payload=$(cat ${{ env.RELEASE_PAYLOAD_FILE }} )
98+ echo "RELEASE_PAYLOAD=$payload" >> $GITHUB_ENV
99+ - name : Notify AMROS of Release
100+ if : steps.published.outputs.value == 'true'
101+ uses : peter-evans/repository-dispatch@v1
102+ with :
103+ token : ${{ secrets.AMGITBOT_PAT }}
104+ repository : AutoModality/amros
105+ event-type : package-released
106+ client-payload : " ${{ env.RELEASE_PAYLOAD }}"
107+
0 commit comments