mirror of
https://github.com/radareorg/radare2.git
synced 2024-11-27 07:00:30 +00:00
679 lines
21 KiB
YAML
679 lines
21 KiB
YAML
name: build
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
|
|
jobs:
|
|
# WASI
|
|
linux-wasi:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Installing with symlinks
|
|
run: sys/wasi.sh
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: linux-wasi
|
|
path: radare2-*-wasi.zip
|
|
|
|
# Source Tarballs
|
|
tarball:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Creating zip and tarball
|
|
run: sys/tarball.sh
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: tarball
|
|
path: radare2-?.?.?.*
|
|
|
|
# Linux
|
|
linux-static:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Extract r2 version
|
|
shell: bash
|
|
run: echo "branch=`sys/version.py -n`" >> $GITHUB_OUTPUT
|
|
id: r2v
|
|
- name: Installing the musl runtime
|
|
run: |
|
|
sudo apt update --assume-yes
|
|
sudo apt install --assume-yes musl-tools
|
|
- name: Building static r2 with acr
|
|
run: |
|
|
cp -f dist/plugins-cfg/plugins.static.nogpl.cfg plugins.cfg
|
|
NOLTO=1 sys/static.sh
|
|
# NOLTO=1 sys/static.sh
|
|
make -C binr/blob
|
|
tar cJvf radare2-${{ steps.r2v.outputs.branch }}-static.tar.xz r2-static
|
|
- name: Pub
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: linux-static
|
|
path: radare2-*-static.tar.xz
|
|
|
|
linux-acr-rpm-64:
|
|
# if: contains(github.ref, 'master') || contains(github.ref, 'ci-')
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Packaging for RPM
|
|
run: make -C dist/rpm
|
|
- name: Pub
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: linux-acr-rpm-64
|
|
path: dist/rpm/*.rpm
|
|
|
|
linux-acr-deb:
|
|
# if: contains(github.ref, 'master') || contains(github.ref, 'ci-')
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
arch:
|
|
- amd64
|
|
- arm64
|
|
- i386
|
|
include:
|
|
- arch: arm64
|
|
gcc: aarch64-linux-gnu
|
|
- arch: i386
|
|
gcc: multilib
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- if: ${{ matrix.gcc }}
|
|
name: Installing crosscompiler
|
|
run: |
|
|
sudo apt update --assume-yes
|
|
sudo apt install --assume-yes gcc-${{ matrix.gcc }} gperf
|
|
- name: Packaging for Debian
|
|
run: |
|
|
gcc -v
|
|
sys/debian.sh ${{ matrix.arch }}
|
|
mv -v dist/debian/*/radare2*.deb .
|
|
- name: Pub
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: linux-acr-deb-${{ matrix.arch }}
|
|
path: radare2*.deb
|
|
|
|
## RPM PACKAGES DISABLED
|
|
# linux-meson-rpm:
|
|
# runs-on: ubuntu:20.04
|
|
# container: centos:8
|
|
# steps:
|
|
# - name: Checkout
|
|
# uses: actions/checkout@v4
|
|
# - name: Prepare Skeleton
|
|
# run: |
|
|
# mkdir -p SOURCES SPECS
|
|
# cp -f dist/rpm/*spec SPECS
|
|
# wget -O https://github.com/radareorg/radare2/archive/master/radare2-5.1.0-git.tar.gz
|
|
# - name: rpmbuild
|
|
# uses: robertdebock/rpmbuild-action@1.1.1
|
|
# - name: Organize artifacts
|
|
# run: mv -v RPMS/*/*.rpm dist/rpm/*.rpm .
|
|
# - name: Pub
|
|
# uses: actions/upload-artifact@v4
|
|
# with:
|
|
# name: linux-meson-rpm
|
|
# path: *.rpm
|
|
#
|
|
# centos-meson-rpm:
|
|
# runs-on: ubuntu:20.04
|
|
# container: centos:8
|
|
# steps:
|
|
# - name: Checkout
|
|
# uses: actions/checkout@v4
|
|
# - name: Install tools for CentOS:8
|
|
# run: |
|
|
# yum install -y patch unzip git gcc make python38 python38-pip rpm-build rpmdevtools wget
|
|
# pip3.8 install meson ninja r2pipe
|
|
# - name: Building with Meson
|
|
# run: |
|
|
# meson build
|
|
# ninja -C build
|
|
# ninja -C build install
|
|
# - name: RPM Packaging
|
|
# run: |
|
|
# cp -f dist/rpm/radare2.spec .
|
|
# rpmdev-setuptree
|
|
# mkdir -p rpmbuild/SOURCES
|
|
# cd rpmbuild/SOURCES
|
|
# wget https://github.com/radareorg/radare2/archive/5860c3efc12d4b75e72bdce4b1d3834599620913/radare2-5.1.0-git.tar.gz
|
|
# cd -
|
|
# rpmbuild -ba radare2.spec
|
|
# mv -v rpmbuild/RPMS/*/*.rpm .
|
|
# - name: Pub
|
|
# uses: actions/upload-artifact@v4
|
|
# with:
|
|
# name: centos-meson-rpm
|
|
# path: *.rpm
|
|
#
|
|
|
|
|
|
# macOS
|
|
macos-acr:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- arch: arm64
|
|
macos: 12
|
|
- arch: x86_64
|
|
macos: 11
|
|
runs-on: macos-${{ matrix.macos }}
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Install pkg-config with Homebrew
|
|
run: brew install pkg-config
|
|
- name: Packaging
|
|
env:
|
|
ARCHFLAGS: '-arch ${{ matrix.arch }}'
|
|
CC: gcc -arch ${{ matrix.arch }}
|
|
run: make -C dist/macos
|
|
- name: Pub
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
path: dist/macos/*.pkg
|
|
name: macos-acr-${{ matrix.arch }}
|
|
|
|
ios:
|
|
if: contains(github.ref, 'master') || contains(github.ref, 'ci-')
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
type:
|
|
- cydia
|
|
- cydia32
|
|
include:
|
|
- type: cydia
|
|
sdk: true
|
|
runs-on: macos-11
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install pkg-config/ldid2 with Homebrew
|
|
run: brew install pkg-config ldid
|
|
- name: Extract r2 version
|
|
shell: bash
|
|
run: echo "branch=`sys/version.py -n`" >> $GITHUB_OUTPUT
|
|
id: r2v
|
|
- name: Create ${{ matrix.type }} package
|
|
run: ./sys/ios-${{ matrix.type }}.sh
|
|
- if: ${{ matrix.sdk }}
|
|
name: Create iOS SDK
|
|
run: |
|
|
./sys/ios-sdk.sh
|
|
pushd /tmp/r2ios
|
|
zip -r /tmp/r2ios-sdk.zip *
|
|
popd
|
|
mv /tmp/r2ios-sdk.zip dist/cydia/radare2/r2ios-sdk-${{ steps.r2v.outputs.branch }}.zip
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ios-${{ matrix.type }}
|
|
path: |
|
|
./dist/cydia/radare2/r2ios-sdk-*.zip
|
|
./dist/cydia/radare2/*.deb
|
|
|
|
# Android
|
|
android-acr:
|
|
if: contains(github.ref, 'master') || contains(github.ref, 'ci-')
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
arch:
|
|
- aarch64
|
|
- arm
|
|
include: # Force API 16 only for ARM (32 bits)
|
|
- arch: arm
|
|
api: 16
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get --assume-yes update
|
|
sudo apt-get --assume-yes install pax wget gperf cabextract unzip python3-wheel python3-setuptools python3-pip
|
|
pip3 install --user meson ninja
|
|
- name: Compile with acr
|
|
run: |
|
|
sys/android-ndk-install.sh "${{ matrix.api }}" "${{ matrix.arch }}"
|
|
sys/android-build.sh "${{ matrix.arch }}"
|
|
ls -l
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: android-acr-${{ matrix.arch }}
|
|
path: radare2*android*${{ matrix.arch }}.tar.gz
|
|
|
|
# disabled because the ndk link is broken for a while
|
|
android-meson:
|
|
if: contains(github.ref, 'android')
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
arch:
|
|
- x86_64
|
|
# - aarch64
|
|
# - arm
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get --assume-yes update
|
|
sudo apt-get --assume-yes install pax wget cabextract unzip python3-wheel python3-setuptools python3-pip
|
|
pip3 install --user meson ninja
|
|
- name: Extract r2 version
|
|
shell: bash
|
|
run: echo "branch=`sys/version.py -n`" >> $GITHUB_OUTPUT
|
|
id: r2v
|
|
- name: Compile with meson
|
|
run: |
|
|
export PATH=${HOME}/.local/bin:${PATH}
|
|
CFLAGS="-static" LDFLAGS="-static" meson --buildtype release --default-library static --prefix=/tmp/android-dir -Dblob=true build --cross-file .github/meson-android-${{ matrix.arch }}.ini
|
|
ninja -C build && ninja -C build install
|
|
- name: Create radare2-${{ steps.r2v.outputs.branch }}-android-${{ matrix.arch }}.tar.gz
|
|
run: |
|
|
cd /tmp
|
|
rm -rf android-dir/include android-dir/lib
|
|
tar --transform 's/android-dir/data\/data\/org.radareorg.radare2installer/g' -czvf radare2-${{ steps.r2v.outputs.branch }}-android-${{ matrix.arch }}.tar.gz android-dir/
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: android-meson-${{ matrix.arch }}
|
|
path: /tmp/radare2-${{ steps.r2v.outputs.branch }}-android-${{ matrix.arch }}.tar.gz
|
|
|
|
|
|
# Windows
|
|
w32-meson:
|
|
if: contains(github.ref, 'master') || contains(github.ref, 'ci-')
|
|
runs-on: windows-2019
|
|
steps:
|
|
- name: Win configure Pagefile
|
|
uses: al-cheb/configure-pagefile-action@v1.4
|
|
with:
|
|
minimum-size: 16GB
|
|
maximum-size: 16GB
|
|
disk-root: "C:"
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.10'
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install git+https://github.com/frida/meson.git@f7f25b19a8d71cebf8e2934733eb041eb6862eee
|
|
pip install ninja r2pipe wget
|
|
- name: Extract r2 version
|
|
shell: bash
|
|
run: echo "branch=`sys/version.py -n`" >> $GITHUB_OUTPUT
|
|
id: r2v
|
|
- name: Build with meson + ninja
|
|
shell: pwsh
|
|
run: |
|
|
.github\vsdevenv.ps1
|
|
meson --buildtype=release --prefix=$PWD\radare2-${{ steps.r2v.outputs.branch }}-w32 build
|
|
ninja -C build -j1 install
|
|
- name: Create zip artifact
|
|
run: 7z a radare2-${{ steps.r2v.outputs.branch }}-w32.zip $PWD\radare2-${{ steps.r2v.outputs.branch }}-w32
|
|
# - uses: actions/checkout@v4
|
|
# with:
|
|
# repository: radareorg/radare2-win-installer
|
|
# path: ./radare2-win-installer
|
|
# - name: Create installer
|
|
# shell: pwsh
|
|
# run: iscc radare2-win-installer\radare2.iss /DRadare2Location=..\radare2-install\* /DLicenseLocation=..\COPYING.LESSER /DIcoLocation=radare2.ico /DMyAppVersion=${{ steps.r2v.outputs.branch }}
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: w32-meson
|
|
path: |
|
|
radare2-${{ steps.r2v.outputs.branch }}-w32.zip
|
|
# radare2-win-installer\Output\radare2.exe
|
|
w64-static-2022:
|
|
runs-on: windows-2022
|
|
steps:
|
|
- name: Win configure Pagefile
|
|
uses: al-cheb/configure-pagefile-action@v1.4
|
|
with:
|
|
minimum-size: 16GB
|
|
maximum-size: 16GB
|
|
disk-root: "C:"
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.10'
|
|
- name: Preparing nmake
|
|
uses: ilammy/msvc-dev-cmd@v1
|
|
with:
|
|
arch: x64
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install git+https://github.com/frida/meson.git@f7f25b19a8d71cebf8e2934733eb041eb6862eee
|
|
pip install ninja r2pipe wget r2env
|
|
- name: Extract r2 version
|
|
shell: bash
|
|
run: echo "branch=`sys/version.py -n`" >> $GITHUB_OUTPUT
|
|
id: r2v
|
|
- name: preconfigure
|
|
continue-on-error: true
|
|
shell: cmd
|
|
run: preconfigure
|
|
- name: Build with meson + ninja
|
|
shell: cmd
|
|
run: |
|
|
call configure static
|
|
call make
|
|
- name: Test executable
|
|
continue-on-error: true
|
|
shell: cmd
|
|
run: |
|
|
cd prefix\bin
|
|
r2blob -v
|
|
- name: Zipping Executable
|
|
shell: cmd
|
|
run: |
|
|
cd prefix\bin
|
|
dir
|
|
7z a r2blob-${{ steps.r2v.outputs.branch }}-w64-2022.zip r2blob.static.exe
|
|
- uses: actions/upload-artifact@v4
|
|
continue-on-error: true
|
|
with:
|
|
name: w64-static-2022
|
|
path: prefix\bin\r2blob-${{ steps.r2v.outputs.branch }}-w64-2022.zip
|
|
|
|
w64-static:
|
|
runs-on: windows-2019
|
|
steps:
|
|
- name: Win configure Pagefile
|
|
uses: al-cheb/configure-pagefile-action@v1.4
|
|
with:
|
|
minimum-size: 16GB
|
|
maximum-size: 16GB
|
|
disk-root: "C:"
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.10'
|
|
- name: Preparing nmake
|
|
uses: ilammy/msvc-dev-cmd@v1
|
|
with:
|
|
arch: x64
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install git+https://github.com/frida/meson.git@f7f25b19a8d71cebf8e2934733eb041eb6862eee
|
|
pip install ninja r2pipe wget r2env
|
|
- name: Extract r2 version
|
|
shell: bash
|
|
run: echo "branch=`sys/version.py -n`" >> $GITHUB_OUTPUT
|
|
id: r2v
|
|
- name: Build with meson + ninja
|
|
shell: cmd
|
|
run: |
|
|
REM preconfigure
|
|
call configure static
|
|
call make
|
|
- name: Test executable
|
|
continue-on-error: true
|
|
shell: cmd
|
|
run: |
|
|
cd prefix\bin
|
|
r2blob -v
|
|
- name: Zipping Executable
|
|
shell: cmd
|
|
run: |
|
|
cd prefix\bin
|
|
dir
|
|
7z a r2blob-${{ steps.r2v.outputs.branch }}-w64.zip r2blob.static.exe
|
|
- uses: actions/upload-artifact@v4
|
|
continue-on-error: true
|
|
with:
|
|
name: w64-static
|
|
path: prefix\bin\r2blob-${{ steps.r2v.outputs.branch }}-w64.zip
|
|
|
|
w64-meson:
|
|
runs-on: windows-2019
|
|
steps:
|
|
- name: Win configure Pagefile
|
|
uses: al-cheb/configure-pagefile-action@v1.4
|
|
with:
|
|
minimum-size: 16GB
|
|
maximum-size: 16GB
|
|
disk-root: "C:"
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.10'
|
|
- name: Preparing nmake
|
|
uses: ilammy/msvc-dev-cmd@v1
|
|
with:
|
|
arch: x64
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install git+https://github.com/frida/meson.git@f7f25b19a8d71cebf8e2934733eb041eb6862eee
|
|
pip install ninja r2pipe wget
|
|
- name: Extract r2 version
|
|
shell: bash
|
|
run: echo "branch=`sys/version.py -n`" >> $GITHUB_OUTPUT
|
|
id: r2v
|
|
- name: Build with meson + ninja
|
|
shell: pwsh
|
|
run: |
|
|
# cmd '/c call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" "x86_64"'
|
|
bash sys/source_bat.bash 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat' "x86_64"
|
|
# meson_options: --default-library=shared|static -Dstatic_runtime=true --backend vs2019
|
|
meson --buildtype=release --prefix=$PWD\radare2-${{ steps.r2v.outputs.branch }}-w64 build
|
|
ninja -C build -j 1
|
|
ninja -C build install
|
|
- name: Create zip artifact
|
|
run: 7z a radare2-${{ steps.r2v.outputs.branch }}-w64.zip $PWD\radare2-${{ steps.r2v.outputs.branch }}-w64
|
|
# - uses: actions/checkout@v4
|
|
# with:
|
|
# repository: radareorg/radare2-win-installer
|
|
# path: ./radare2-win-installer
|
|
# - name: Create installer
|
|
# shell: pwsh
|
|
# run: iscc radare2-win-installer\radare2.iss /DRadare2Location=..\radare2-install\* /DLicenseLocation=..\COPYING.LESSER /DIcoLocation=radare2.ico /DMyAppVersion=${{ steps.r2v.outputs.branch }}
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: w64-meson
|
|
path: |
|
|
radare2-${{ steps.r2v.outputs.branch }}-w64.zip
|
|
# radare2-win-installer\Output\radare2.exe
|
|
|
|
|
|
# FreeBSD
|
|
# freebsd:
|
|
# runs-on: ubuntu-latest
|
|
# steps:
|
|
# - uses: actions/checkout@v4
|
|
# - name: Extract r2 version
|
|
# shell: bash
|
|
# run: echo "branch=`sys/version.py -n`" >> $GITHUB_OUTPUT
|
|
# id: r2v
|
|
# - name: Build r2 in FreeBSD
|
|
# id: build
|
|
# uses: vmactions/freebsd-vm@v1
|
|
# with:
|
|
# usesh: true
|
|
# prepare: pkg install -y curl gmake patch git python gawk
|
|
# run: |
|
|
# cd work || true
|
|
# pwd
|
|
# ls -lah
|
|
# whoami
|
|
# env
|
|
# freebsd-version
|
|
# echo DATE: ; date
|
|
# pip install r2pipe
|
|
# sys/install.sh
|
|
# gmake install DESTDIR=/tmp/prefix
|
|
# (cd /tmp/prefix ; tar czvf /tmp/radare2-freebsd.tgz *)
|
|
# r2r test/db/cmd
|
|
# rm -rf * .git*
|
|
# cp /tmp/radare2-freebsd.tgz radare2-${{ steps.r2v.outputs.branch }}-freebsd.tgz
|
|
# echo DATE: ; date
|
|
# - uses: actions/upload-artifact@v4
|
|
# with:
|
|
# name: freebsd
|
|
# path: radare2-*-freebsd.tgz
|
|
|
|
|
|
check_abi_compatibility:
|
|
needs:
|
|
- linux-static
|
|
runs-on: ubuntu-latest
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
working-directory: /tmp
|
|
steps:
|
|
- name: Install dependencies
|
|
run: |
|
|
# sudo apt install --assume-yes abigail-tools wget
|
|
# ubuntu-latest is TOO OLD and it ships abigail 2.0 which is known to be buggy
|
|
wget https://ftp.fau.de/debian/pool/main/liba/libabigail/libabigail0_2.2-2_amd64.deb
|
|
sudo dpkg -i libabigail0_2.2-2_amd64.deb
|
|
wget https://ftp.fau.de/debian/pool/main/liba/libabigail/libabigail-dev_2.2-2_amd64.deb
|
|
sudo dpkg -i libabigail-dev_2.2-2_amd64.deb
|
|
wget https://ftp.fau.de/debian/pool/main/liba/libabigail/abigail-tools_2.2-2_amd64.deb
|
|
sudo dpkg -i abigail-tools_2.2-2_amd64.deb
|
|
- name: Download Build
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: linux-static
|
|
path: /tmp
|
|
- name: Download latest release
|
|
run: |
|
|
DOWNLOAD_URL=$(curl -s \
|
|
--header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \
|
|
https://api.github.com/repos/radareorg/radare2/releases/latest \
|
|
| jq -r '.assets[] | select(.name | startswith("radare2")) | select(.name | endswith("static.tar.xz")) | .browser_download_url')
|
|
wget -O r2-static-latest.tar.xz $DOWNLOAD_URL
|
|
- name: Untar
|
|
run: |
|
|
mkdir r2-static
|
|
tar -xvf radare2-*-static.tar.xz -C r2-static --strip-components=1
|
|
mkdir r2-static-latest
|
|
tar -xvf r2-static-latest.tar.xz -C r2-static-latest --strip-components=1
|
|
- name: ABI compatibility check
|
|
run: |
|
|
A=abidiff.conf
|
|
echo '[suppress_function]' > $A
|
|
echo 'name_regexp = .*java.*' >> $A
|
|
echo '[suppress_function]' >> $A
|
|
echo 'name_not_regexp = ^r_.*' >> $A
|
|
echo '[suppress_function]' >> $A
|
|
echo 'name_regexp = r_bin_add_import' >> $A
|
|
echo '[suppress_variable]' >> $A
|
|
echo 'name_not_regexp = ^r_.*' >> $A
|
|
for lib in r2-static-latest/usr/lib/libr_*.so; do
|
|
echo $lib ; abidiff --suppr $A ${lib} r2-static/usr/lib/$(basename ${lib});
|
|
done
|
|
|
|
|
|
# Release creation
|
|
check_release:
|
|
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
|
|
outputs:
|
|
is_release: ${{ steps.release.outputs.is }}
|
|
tag_name: ${{ steps.release.outputs.tag }}
|
|
needs:
|
|
- linux-wasi
|
|
- tarball
|
|
- linux-static
|
|
# - linux-acr-rpm-64
|
|
- linux-acr-deb
|
|
- macos-acr
|
|
- ios
|
|
- android-acr
|
|
# - android-meson
|
|
- w32-meson
|
|
- w64-meson
|
|
- w64-static
|
|
# - freebsd
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0 # Download all git history and tags
|
|
- name: Check if is a release
|
|
run: |
|
|
TAG="`git describe --exact-match --tags ${{ github.sha }} || true`"
|
|
if [ -n "$TAG" ]; then
|
|
echo "tag=$TAG" >> $GITHUB_OUTPUT
|
|
echo "is=yes" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "is=no" >> $GITHUB_OUTPUT
|
|
fi
|
|
id: release
|
|
|
|
release:
|
|
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && needs.check_release.outputs.is_release == 'yes' }}
|
|
needs:
|
|
- check_release
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
ASSET_FILES: |
|
|
dist/artifacts/tarball/*.tar.xz
|
|
dist/artifacts/linux-acr-deb-*/radare2_*.deb
|
|
dist/artifacts/w64-meson/*.zip
|
|
dist/artifacts/w32-meson/*.zip
|
|
dist/artifacts/macos-acr-*/*.pkg
|
|
dist/artifacts/ios-cydia/*.deb
|
|
dist/artifacts/ios-cydia32/*.deb
|
|
dist/artifacts/ios-cydia/r2ios-sdk-*.zip
|
|
dist/artifacts/android-acr-*/*.tar.gz
|
|
dist/artifacts/linux-static/*.tar.xz
|
|
dist/artifacts/linux-acr-deb-*/radare2-dev_*.deb
|
|
dist/artifacts/linux-wasi/*.zip
|
|
dist/artifacts/w64-static/*.zip
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0 # Download all git history and tags
|
|
- name: Extract r2 version
|
|
shell: bash
|
|
run: echo "branch=`sys/version.py -n`" >> $GITHUB_OUTPUT
|
|
id: r2v
|
|
- name: Prepare release notes
|
|
run: ./sys/release-notes.sh | tee ./RELEASE_NOTES.md
|
|
- name: Download artifacts
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
path: dist/artifacts
|
|
- name: Generate checksums
|
|
run: sha256sum $ASSET_FILES | awk '{sub(".*/", "", $2); print $1" "$2}' > checksums.txt
|
|
- name: Create GitHub release
|
|
id: create_release
|
|
uses: softprops/action-gh-release@975c1b265e11dd76618af1c374e7981f9a6ff44a
|
|
with:
|
|
name: ${{ steps.r2v.outputs.branch }}
|
|
tag_name: ${{ needs.check_release.outputs.tag_name }}
|
|
body_path: ./RELEASE_NOTES.md
|
|
draft: false
|
|
prerelease: false
|
|
generate_release_notes: false
|
|
files: |
|
|
${{ env.ASSET_FILES }}
|
|
checksums.txt
|