RHEL 7 x86_64 #230
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: RHEL 7 x86_64 | |
on: | |
schedule: | |
- cron: "0 1 * * *" | |
workflow_dispatch: {} | |
env: | |
BTFHUB_NO_SUDO: true | |
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true | |
jobs: | |
rhel7-update: | |
name: rhel 7 x86_64 | |
runs-on: ubuntu-22.04 | |
container: | |
image: registry.access.redhat.com/rhel7:latest | |
steps: | |
- name: setup subscription | |
run: | | |
rm /etc/rhsm-host | |
yum repolist --disablerepo=* | |
subscription-manager register --org=${{ secrets.DD_BTFHUB_RHEL_ORG_ID }} --activationkey="btfhub-ci" | |
subscription-manager repos --enable=rhel-7-server-debug-rpms --enable=rhel-7-server-rpms | |
- name: install required packages | |
run: | | |
yum install -y yum-utils wget bzip2 zlib-devel m4 xz gzip cmake find make | |
- name: install clang 5 and gcc 7 | |
run: | | |
subscription-manager repos --enable rhel-7-server-optional-rpms --enable rhel-server-rhscl-7-rpms --enable rhel-7-server-devtools-rpms | |
cd /etc/pki/rpm-gpg | |
wget -O RPM-GPG-KEY-redhat-devel https://www.redhat.com/security/data/a5787476.txt | |
rpm --import RPM-GPG-KEY-redhat-devel | |
yum install -y devtoolset-7 llvm-toolset-7 | |
echo "/opt/rh/devtoolset-7/root/usr/bin" >> $GITHUB_PATH | |
echo "/opt/rh/llvm-toolset-7/root/usr/sbin" >> $GITHUB_PATH | |
echo "/opt/rh/llvm-toolset-7/root/usr/bin" >> $GITHUB_PATH | |
subscription-manager repos --disable rhel-7-server-optional-rpms --disable rhel-server-rhscl-7-rpms --disable rhel-7-server-devtools-rpms | |
- name: install newer git | |
run: | | |
yum remove -y git | |
yum install -y https://repo.ius.io/ius-release-el7.rpm https://dl.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/e/epel-release-7-14.noarch.rpm | |
yum install -y git236 | |
yum-config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo | |
yum install -y gh | |
- name: github authenticate | |
run: | | |
gh auth login --with-token <<<'${{ secrets.DD_BTFHUB_BOT_GITHUB_TOKEN }}' | |
- name: checkout btfhub | |
uses: actions/checkout@v3 | |
with: | |
token: ${{ secrets.DD_BTFHUB_BOT_GITHUB_TOKEN }} | |
submodules: 'recursive' | |
- run: git config --system --add safe.directory $(pwd) | |
- uses: actions/setup-go@v4 | |
with: | |
go-version-file: 'go.mod' | |
- name: build elfutils | |
run: | | |
wget -nv https://sourceware.org/elfutils/ftp/0.190/elfutils-0.190.tar.bz2 | |
tar xf elfutils-0.190.tar.bz2 | |
cd elfutils-0.190 | |
./configure --disable-libdebuginfod --disable-debuginfod --disable-demangler | |
make install | |
ldconfig | |
- name: build tar | |
run: | | |
wget -nv https://ftpmirror.gnu.org/tar/tar-1.35.tar.xz | |
tar xf tar-1.35.tar.xz | |
cd tar-1.35 | |
FORCE_UNSAFE_CONFIGURE=1 ./configure --prefix=/usr | |
make install | |
- name: build pahole | |
run: | | |
cd ./3rdparty/dwarves | |
mkdir build | |
cd build | |
cmake -D__LIB=lib -DDWARF_INCLUDE_DIR=/usr/include .. | |
make install | |
echo "/usr/local/lib" >> /etc/ld.so.conf.d/pahole.conf | |
ldconfig | |
- name: build bpftool | |
run: | | |
cd ./3rdparty/bpftool | |
make -C src/ V=1 install | |
- name: build btfhub | |
run: | | |
make | |
- name: checkout btfhub-archive | |
uses: actions/checkout@v3 | |
with: | |
repository: DataDog/btfhub-archive | |
ref: main | |
token: ${{ secrets.DD_BTFHUB_BOT_GITHUB_TOKEN }} | |
path: archive | |
sparse-checkout: | | |
rhel/7/x86_64 | |
- name: generate BTFs | |
run: | | |
./btfhub -workers 6 -d rhel -r 7 -a x86_64 | |
- name: check status | |
run: | | |
cd archive | |
git status | |
- name: commit and push to btfhub-archive | |
run: | | |
cd archive | |
git config --local user.name "Bryce Kahle" | |
git config --local user.email "bryce.kahle@datadoghq.com" | |
git add -A | |
git diff-index --quiet HEAD || git commit -m "rhel 7 x86_64 update on $(date -u +%Y-%m-%d)" | |
git push || (git pull --rebase && git push) | |
- name: unregister from RHEL | |
if: always() | |
run: | | |
subscription-manager remove --all | |
subscription-manager unregister | |
subscription-manager clean |