-
Notifications
You must be signed in to change notification settings - Fork 229
265 lines (241 loc) · 9.65 KB
/
Release.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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
# See: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
# Workflow name
name: Release
# Run on tag push
on:
push:
tags:
- '**'
jobs:
# #
# # Build on AlmaLinux 8.5
# #
# AlmaLinux-RPM-build:
# runs-on: ubuntu-latest
# # See: https://hub.docker.com/_/almalinux
# container: almalinux:8.5
# # The job outputs link to the outputs of the 'rpmrename' step
# # Only job outputs can be used in child jobs
# outputs:
# rpm : ${{steps.rpmrename.outputs.RPM}}
# srpm : ${{steps.rpmrename.outputs.SRPM}}
# steps:
# # Use dnf to install development packages
# - name: Install development packages
# run: |
# dnf --assumeyes group install "Development Tools" "RPM Development Tools"
# dnf --assumeyes install wget openssl-devel diffutils delve which perl
# dnf --assumeyes install 'dnf-command(builddep)'
# # Enable powertools repository for dnf (required for some dependencies)
# - name: Enable powertools repository
# run: |
# dnf --assumeyes --disableplugin=subscription-manager install dnf-plugins-core
# dnf --assumeyes --disableplugin=subscription-manager install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# dnf config-manager --enable epel
# dnf config-manager --set-enabled powertools
# # Checkout git repository and submodules
# # fetch-depth must be 0 to use git describe
# # See: https://github.com/marketplace/actions/checkout
# - name: Checkout
# uses: actions/checkout@v2
# with:
# submodules: recursive
# fetch-depth: 0
# # Use dnf to install build dependencies
# - name: Install build dependencies
# run: |
# dnf --assumeyes builddep packaging/rpm/likwid.spec
# - name: RPM build LIKWID
# id: rpmbuild
# run: make RPM
# # AlmaLinux 8.5 is a derivate of RedHat Enterprise Linux 8 (UBI8),
# # so the created RPM both contain the substring 'el8' in the RPM file names
# # This step replaces the substring 'el8' to 'alma85'. It uses the move operation
# # because it is unclear whether the default AlmaLinux 8.5 container contains the
# # 'rename' command. This way we also get the new names for output.
# - name: Rename RPMs (s/el8/alma85/)
# id: rpmrename
# run: |
# OLD_RPM="${{steps.rpmbuild.outputs.RPM}}"
# OLD_SRPM="${{steps.rpmbuild.outputs.SRPM}}"
# NEW_RPM="${OLD_RPM/el8/alma85}"
# NEW_SRPM=${OLD_SRPM/el8/alma85}
# mv "${OLD_RPM}" "${NEW_RPM}"
# mv "${OLD_SRPM}" "${NEW_SRPM}"
# echo "::set-output name=SRPM::${NEW_SRPM}"
# echo "::set-output name=RPM::${NEW_RPM}"
# # See: https://github.com/actions/upload-artifact
# - name: Save RPM as artifact
# uses: actions/upload-artifact@v2
# with:
# name: LIKWID RPM for AlmaLinux 8.5
# path: ${{ steps.rpmrename.outputs.RPM }}
# - name: Save SRPM as artifact
# uses: actions/upload-artifact@v2
# with:
# name: LIKWID SRPM for AlmaLinux 8.5
# path: ${{ steps.rpmrename.outputs.SRPM }}
# #
# # Build on UBI 8 using go-toolset
# #
# UBI-8-RPM-build:
# runs-on: ubuntu-latest
# # See: https://catalog.redhat.com/software/containers/ubi8/ubi/5c359854d70cc534b3a3784e?container-tabs=gti
# container: registry.access.redhat.com/ubi8/ubi:8.5-226.1645809065
# # The job outputs link to the outputs of the 'rpmbuild' step
# outputs:
# rpm : ${{steps.rpmbuild.outputs.RPM}}
# srpm : ${{steps.rpmbuild.outputs.SRPM}}
# steps:
# # Use dnf to install development packages
# - name: Install development packages
# run: |
# dnf --assumeyes --disableplugin=subscription-manager install rpm-build rpm-build-libs rpm-libs gcc make python38 git wget openssl-devel diffutils delve which
# dnf --assumeyes --disableplugin=subscription-manager install 'dnf-command(builddep)'
# # Enable powertools repository for dnf (required for some dependencies)
# #- name: Enable powertools repository
# # run: |
# # dnf --assumeyes --disableplugin=subscription-manager install dnf-plugins-core
# # dnf --assumeyes --disableplugin=subscription-manager install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# # dnf repolist
# # subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
# # /usr/bin/crb enable
# # Checkout git repository and submodules
# # fetch-depth must be 0 to use git describe
# # See: https://github.com/marketplace/actions/checkout
# - name: Checkout
# uses: actions/checkout@v2
# with:
# submodules: recursive
# fetch-depth: 0
# # Use dnf to install build dependencies
# - name: Install build dependencies
# run: |
# dnf --assumeyes --disableplugin=subscription-manager builddep packaging/rpm/likwid.spec
# - name: RPM build LIKWID
# id: rpmbuild
# run: make RPM
# # See: https://github.com/actions/upload-artifact
# - name: Save RPM as artifact
# uses: actions/upload-artifact@v2
# with:
# name: LIKWID RPM for UBI 8
# path: ${{ steps.rpmbuild.outputs.RPM }}
# - name: Save SRPM as artifact
# uses: actions/upload-artifact@v2
# with:
# name: LIKWID SRPM for UBI 8
# path: ${{ steps.rpmbuild.outputs.SRPM }}
# #
# # Build on Ubuntu 20.04
# #
# Ubuntu-focal-build:
# runs-on: ubuntu-latest
# container: ubuntu:20.04
# # The job outputs link to the outputs of the 'debrename' step
# # Only job outputs can be used in child jobs
# outputs:
# deb : ${{steps.debrename.outputs.DEB}}
# steps:
# # Use apt to install development packages
# - name: Install development packages
# run: |
# apt update && apt --assume-yes upgrade
# apt --assume-yes install build-essential sed git wget bash sudo
# # Checkout git repository and submodules
# # fetch-depth must be 0 to use git describe
# # See: https://github.com/marketplace/actions/checkout
# - name: Checkout
# uses: actions/checkout@v2
# with:
# submodules: recursive
# fetch-depth: 0
# - name: DEB build LIKWID
# id: dpkg-build
# run: |
# make DEB
# - name: Rename DEB (add '_ubuntu20.04')
# id: debrename
# run: |
# OLD_DEB_NAME=$(echo "${{steps.dpkg-build.outputs.DEB}}" | rev | cut -d '.' -f 2- | rev)
# NEW_DEB_FILE="${OLD_DEB_NAME}_ubuntu20.04.deb"
# mv "${{steps.dpkg-build.outputs.DEB}}" "${NEW_DEB_FILE}"
# echo "::set-output name=DEB::${NEW_DEB_FILE}"
# # See: https://github.com/actions/upload-artifact
# - name: Save DEB as artifact
# uses: actions/upload-artifact@v2
# with:
# name: LIKWID DEB for Ubuntu 20.04
# path: ${{ steps.debrename.outputs.DEB }}
#
# Create release with fresh RPMs
#
Release:
runs-on: ubuntu-latest
# We need the RPMs, so add dependency
# needs: [AlmaLinux-RPM-build, UBI-8-RPM-build, Ubuntu-focal-build]
steps:
# See: https://github.com/actions/download-artifact
# - name: Download AlmaLinux 8.5 RPM
# uses: actions/download-artifact@v2
# with:
# name: LIKWID RPM for AlmaLinux 8.5
# - name: Download AlmaLinux 8.5 SRPM
# uses: actions/download-artifact@v2
# with:
# name: LIKWID SRPM for AlmaLinux 8.5
#
# - name: Download UBI 8 RPM
# uses: actions/download-artifact@v2
# with:
# name: LIKWID RPM for UBI 8
# - name: Download UBI 8 SRPM
# uses: actions/download-artifact@v2
# with:
# name: LIKWID SRPM for UBI 8
# - name: Download Ubuntu 20.04 DEB
# uses: actions/download-artifact@v2
# with:
# name: LIKWID DEB for Ubuntu 20.04
# The download actions do not publish the name of the downloaded file,
# so we re-use the job outputs of the parent jobs. The files are all
# downloaded to the current folder.
# The gh-release action afterwards does not accept file lists but all
# files have to be listed at 'files'. The step creates one output per
# RPM package (2 per distro)
# - name: Set RPM variables
# id: files
# run: |
# ALMA_85_RPM=$(basename "${{ needs.AlmaLinux-RPM-build.outputs.rpm}}")
# ALMA_85_SRPM=$(basename "${{ needs.AlmaLinux-RPM-build.outputs.srpm}}")
# UBI_8_RPM=$(basename "${{ needs.UBI-8-RPM-build.outputs.rpm}}")
# UBI_8_SRPM=$(basename "${{ needs.UBI-8-RPM-build.outputs.srpm}}")
# U_2004_DEB=$(basename "${{ needs.Ubuntu-focal-build.outputs.deb}}")
# echo "ALMA_85_RPM::${ALMA_85_RPM}"
# echo "ALMA_85_SRPM::${ALMA_85_SRPM}"
# echo "UBI_8_RPM::${UBI_8_RPM}"
# echo "UBI_8_SRPM::${UBI_8_SRPM}"
# echo "U_2004_DEB::${U_2004_DEB}"
# echo "::set-output name=ALMA_85_RPM::${ALMA_85_RPM}"
# echo "::set-output name=ALMA_85_SRPM::${ALMA_85_SRPM}"
# echo "::set-output name=UBI_8_RPM::${UBI_8_RPM}"
# echo "::set-output name=UBI_8_SRPM::${UBI_8_SRPM}"
# echo "::set-output name=U_2004_DEB::${U_2004_DEB}"
# Get the tag name but remove beginning 'v'
- name: Get version
id: get_version
run: |
VERSION=${{github.ref_name}}
echo ::set-output name=VERSION::${VERSION#v}
# See: https://github.com/softprops/action-gh-release
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
name: likwid-${{steps.get_version.outputs.VERSION}}
# files: |
# ${{ steps.files.outputs.ALMA_85_RPM }}
# ${{ steps.files.outputs.ALMA_85_SRPM }}
# ${{ steps.files.outputs.UBI_8_RPM }}
# ${{ steps.files.outputs.UBI_8_SRPM }}
# ${{ steps.files.outputs.U_2004_DEB }}