-
Notifications
You must be signed in to change notification settings - Fork 27
133 lines (121 loc) · 4.74 KB
/
o2-full-deps.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
---
# Create repositories with all O2 prerequisites plus aliBuild and push them
# upstream (e.g. to S3).
name: Build o2-full-deps repositories
# Controls when the action will run. This workflow is triggered manually.
"on":
workflow_dispatch:
permissions: {}
jobs:
rpm:
runs-on: ubuntu-latest
strategy:
# Keep running jobs for other CentOS/Alma/Fedora versions, even if one fails.
fail-fast: false
matrix:
# For every entry in el_version:, add an {el_version, container, alibuild_tag} entry to include:!
el_version:
- el7
- el8
- el9
- fedora
# The include: key extends the matrix specified above with extra variables.
include:
- el_version: el7
container: centos:7
alibuild_tag: v1.17.12
- el_version: el8
container: almalinux:8
alibuild_tag: v1.17.12
- el_version: el9
container: almalinux:9
alibuild_tag: v1.17.12
- el_version: fedora
container: fedora:40
alibuild_tag: v1.17.12
name: RPM (${{ matrix.el_version }})
container: ${{ matrix.container }}
env:
ALIBUILD_TAG: ${{ matrix.alibuild_tag }}
DISTRO: ${{ matrix.el_version }}
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: 'true' # Only required for CentOS 7
steps:
# For rpms/*.spec
- uses: actions/checkout@v3
- name: Install prerequisites
run: |
set -ex
if [[ "$DISTRO" == "el7" ]]; then
sed -i.bak -e 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i.bak -r -e 's|# ?baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
find /etc/yum.repos.d -name "*.bak" -delete
yum clean all
yum update -y
fi
yum clean all
yum update -y
yum install -y rpm-build scl-utils-build createrepo unzip git python3 python3-pip python3-setuptools
curl https://rclone.org/install.sh | bash
cat << EOF > /tmp/rclone.conf
${{ secrets.S3_RCLONE_CONFIG }}
EOF
- name: Build the ${{ matrix.el_version }} RPM and create a yum repo
run: |
set -ex
rpmbuild -ba "rpms/o2-prereq-$DISTRO.spec"
git clone -b "$ALIBUILD_TAG" https://github.com/alisw/alibuild
cd alibuild
case "$DISTRO" in
el7) deps=python3,git,python3-PyYAML,python3-requests,python3-distro ;;
*) deps=python3,git,python3-pyyaml,python3-requests,python3-distro ;;
esac
python3 setup.py bdist_rpm --requires "$deps"
cp dist/alibuild-*.noarch.rpm ~/rpmbuild/RPMS/"$(uname -m)"/
cd ~/rpmbuild/RPMS/"$(uname -m)"/
createrepo .
ls -la
case "$DISTRO" in
el7) repo_suffix=_ ;;
*) repo_suffix=_$DISTRO. ;;
esac
rclone --config /tmp/rclone.conf --transfers=10 --progress --delete-before \
sync local:./ "rpms3:alibuild-repo/RPMS/o2-full-deps${repo_suffix}$(uname -m | tr _ -)/"
deb-ubuntu:
runs-on: ubuntu-latest
strategy:
# Keep running jobs for other Ubuntu versions, even if one fails.
fail-fast: false
matrix:
ubuntu_codename:
- focal # 20.04
- jammy # 22.04
- mantic # 23.10
- noble # 24.04
name: DEB (${{ matrix.ubuntu_codename }})
container: ubuntu:${{ matrix.ubuntu_codename }}
env:
ALIBUILD_TAG: v1.17.12
ALIBUILD_DISTRO: ${{ matrix.ubuntu_codename }}
DEBIAN_FRONTEND: noninteractive
steps:
- name: Install prerequisites
run: |
apt update
apt install -y vim git devscripts build-essential lintian debhelper dh-python python3-all python3-setuptools python3-setuptools-scm
mkdir -p ~/.gnupg
chmod 700 ~/.gnupg
echo "pinentry-mode loopback" >> ~/.gnupg/gpg.conf
echo -n "${{ secrets.LAUNCHPAD_PPA_GPG_KEY }}" | gpg --no-tty --batch --import
- name: Build a DEB for Ubuntu and push it to the PPA
run: |
set -x
git clone https://github.com/alisw/alibuild
cd alibuild
rm -rf .git
cat <<EOF > debian/changelog
python3-alibuild (${ALIBUILD_TAG#v}+$ALIBUILD_DISTRO) $ALIBUILD_DISTRO; urgency=medium
* Bump to $ALIBUILD_TAG
-- Giulio Eulisse <[email protected]> $(date -R -u)
EOF
debuild --no-lintian -kA3A177D7C6BAD5C044ACAC10F56D273E83B84A47 -S -p'gpg --no-tty --passphrase ${{ secrets.LAUNCHPAD_PPA_GPG_PASS }}'
dput ppa:alisw/ppa "../python3-alibuild_${ALIBUILD_TAG#v}+${ALIBUILD_DISTRO}_source.changes"