-
Notifications
You must be signed in to change notification settings - Fork 0
104 lines (86 loc) · 2.5 KB
/
build-rpms.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
name: Build RPMs
on:
push:
tags:
- '*'
jobs:
build:
strategy:
matrix:
osversion:
- '9'
name: build (el${{ matrix.osversion }})
runs-on: ubuntu-latest
container:
image: quay.io/centos/centos:stream${{ matrix.osversion }}
steps:
- name: install tools
run: >
dnf install -y
createrepo
'dnf-command(builddep)'
git
gnupg
rpmdevtools
rpm-sign
- name: clone repository
uses: actions/checkout@v4
- name: prepare git
run: |
git config --global user.name "RPM Builder"
git config --global user.email "[email protected]"
- name: prepare gpg
env:
GPG_KEY: ${{ secrets.GPG_KEY }}
run: |
echo "${GPG_KEY}" | gpg --import
echo '%_gpg_name D1D3C4C53BB1516C13C86647F3AC651D45D407D3' > ~/.rpmmacros
- name: get version
run: >
sed -n 's/^version *=[^0-9]*\(.*\). */%_camera_control_version \1/p'
pyproject.toml >> ~/.rpmmacros
- name: prepare build tree
run: |
rpmdev-setuptree
- name: copy service file
run: |
cp .github/rpm/opencast-camera-control.service ~/rpmbuild/SOURCES/
- name: install build dependencies
working-directory: .github/rpm/
run: |
dnf builddep -y opencast-camera-control.spec
- name: download sources
working-directory: .github/rpm/
run: |
spectool -gR opencast-camera-control.spec
- name: build rpm
working-directory: .github/rpm/
run: |
rpmbuild -ba opencast-camera-control.spec
- name: switch to repository branch
run: |
chown root:root .
git fetch
git checkout rpm-el${{ matrix.osversion }}
- name: sign rpms
run: |
rpmsign --addsign ~/rpmbuild/RPMS/noarch/*.rpm
- name: copy rpms to repository
run: |
cp -v ~/rpmbuild/RPMS/noarch/*.rpm .
- name: add new rpms
run: |
git add ./*.rpm
- name: update repository metadata
run: |
createrepo --update .
git add ./repodata/
- name: commit changes
run: |
git status
RPM="$(ls -1 ~/rpmbuild/RPMS/noarch/ | tail -n1)"
git diff --staged --quiet || git commit -m "Build ${RPM} $(date)"
- name: push updates
run: |
git remote -v
git push