Skip to content

Commit

Permalink
Revert "Merge all things in one workflow file, reducing duplication o…
Browse files Browse the repository at this point in the history
…f CI code (radareorg#17355)"

This reverts commit dfde84d.
  • Loading branch information
ret2libc committed Aug 31, 2020
1 parent 9b3d898 commit 2449d32
Show file tree
Hide file tree
Showing 7 changed files with 383 additions and 285 deletions.
41 changes: 41 additions & 0 deletions .github/workflows/centos6.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: CentOS 6 test

on:
push:
branches:
- 'pre-release*'
- 'prerelease*'
- 'release-*'
- 'centos*'
schedule:
- cron: '0 18 * * 1,3,5' # Three-weekly at 18:00 UTC on Monday, Wednesday, and Friday

jobs:
build:
name: centos-6-build
runs-on: ubuntu-latest
container: centos:6

steps:
- name: Install tools
run: yum install -y patch unzip git gcc make
- name: Checkout r2
run: |
git clone https://github.com/${{ github.repository }}
cd radare2
git fetch origin ${{ github.ref }}
git checkout -b local_branch FETCH_HEAD
- name: Configure with ACR and build
run: ./configure --prefix=/usr && make CS_RELEASE=1
working-directory: radare2
- name: Install with make
run: make install
working-directory: radare2
- name: Run tests
run: cd test/unit && make
working-directory: radare2
env:
# `make install` installs, for some unknown reasons, pkgconfig files in
# /usr/lib and not in /usr/lib64, thus pkg-config cannot find the right
# .pc files if the right path is not specified
PKG_CONFIG_PATH: /usr/lib/pkgconfig
109 changes: 109 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
name: Radare2 CI

on:
push:
branches:
- master
- 'pre-release*'
- 'prerelease*'
- 'release*'

jobs:
build:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
name: [linux-acr-gcc-tests, linux-acr-clang-tests, linux-meson-gcc-tests, linux-meson-gcc-newshell-tests, macos-clang-tests]
include:
- name: linux-acr-gcc-tests
os: ubuntu-latest
build_system: acr
compiler: gcc
- name: linux-acr-clang-tests
os: ubuntu-latest
build_system: acr
compiler: clang
- name: linux-meson-gcc-tests
os: ubuntu-latest
build_system: meson
compiler: gcc
meson_options: -Db_coverage=true
coverage: 1
- name: linux-meson-gcc-newshell-tests
os: ubuntu-latest
build_system: meson
compiler: gcc
newshell: true
- name: macos-clang-tests
os: macos-latest
build_system: acr
compiler: clang

steps:
- uses: actions/checkout@v2
- name: Install pkg-config with Homebrew
if: matrix.os == 'macos-latest'
run: brew install pkg-config
- name: Install python
if: matrix.os != 'macos-latest'
run: sudo apt-get --assume-yes install python3-wheel python3-setuptools
- name: Install meson and ninja
if: matrix.build_system == 'meson'
run: pip3 install --user meson==0.52.0 ninja==1.10.0
- name: Install test dependencies
run: pip3 install --user 'git+https://github.com/radareorg/radare2-r2pipe#egg=r2pipe&subdirectory=python'
- name: Install clang
if: matrix.compiler == 'clang' && matrix.os == 'ubuntu-latest'
run: sudo apt-get --assume-yes install clang
- name: Checkout our Testsuite Binaries
uses: actions/checkout@v2
with:
repository: radareorg/radare2-testbins
path: test/bins
- name: Configure with ACR and build
if: matrix.build_system == 'acr'
run: ./configure --prefix=${HOME} && make
env:
CC: ${{ matrix.compiler }}
- name: Build with Meson
if: matrix.build_system == 'meson'
run: |
export PATH=${HOME}/.local/bin:${PATH}
meson ${{ matrix.meson_options }} --prefix=${HOME} build && ninja -C build
env:
CC: ${{ matrix.compiler }}
- name: Install with make
if: matrix.build_system == 'acr'
run: |
# Install the radare2
export PATH=${HOME}/bin:${HOME}/.local/bin:${PATH}
export LD_LIBRARY_PATH=${HOME}/lib/$(uname -m)-linux-gnu:${HOME}/lib:${HOME}/lib64:${LD_LIBRARY_PATH}
export PKG_CONFIG_PATH=${HOME}/lib/pkgconfig:${HOME}/lib/$(uname -m)-linux-gnu/pkgconfig:${PKG_CONFIG_PATH}
make install
- name: Install with meson
if: matrix.build_system == 'meson'
run: |
# Install the radare2
export PATH=${HOME}/bin:${HOME}/.local/bin:${PATH}
export LD_LIBRARY_PATH=${HOME}/lib/$(uname -m)-linux-gnu:${HOME}/lib:${HOME}/lib64:${LD_LIBRARY_PATH}
export PKG_CONFIG_PATH=${HOME}/lib/pkgconfig:${HOME}/lib/$(uname -m)-linux-gnu/pkgconfig:${PKG_CONFIG_PATH}
ninja -C build install
- name: Run tests
run: |
# Running the test suite
export PATH=${HOME}/bin:${HOME}/.local/bin:${PATH}
export LD_LIBRARY_PATH=${HOME}/lib/$(uname -m)-linux-gnu:${HOME}/lib:${HOME}/lib64:${LD_LIBRARY_PATH}
export PKG_CONFIG_PATH=${HOME}/lib/pkgconfig:${HOME}/lib/$(uname -m)-linux-gnu/pkgconfig:${PKG_CONFIG_PATH}
if [ "$NEWSHELL" == "true" ]; then
export R2_CFG_NEWSHELL=1
fi
cd test
radare2 -N -Qc 'e cfg.newshell' -
make && make fuzz-tests
env:
NEWSHELL: ${{ matrix.newshell }}
- name: Upload coverage info
uses: codecov/codecov-action@v1
if: matrix.coverage == '1'
65 changes: 65 additions & 0 deletions .github/workflows/debianold.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: Debian OLD

on:
push:
branches:
- 'pre-release*'
- 'prerelease*'
- 'release-*'
- 'debian*'
schedule:
- cron: '0 18 * * 1,3,5' # Three-weekly at 18:00 UTC on Monday, Wednesday, and Friday

jobs:
build:
name: debian-oldies-build
strategy:
matrix:
container:
- debian:wheezy
- debian:jessie

runs-on: ubuntu-latest
container: ${{ matrix.container }}

steps:
- name: Fix containers (Wheezy)
if: matrix.container == 'debian:wheezy'
run: |
sed -i '/deb http:\/\/deb.debian.org\/debian wheezy-updates main/d' /etc/apt/sources.list
echo "deb http://archive.debian.org/debian wheezy main" > /etc/apt/sources.list
echo "deb http://archive.debian.org/debian-security wheezy/updates main" >> /etc/apt/sources.list
echo "Acquire::Check-Valid-Until no;" > /etc/apt/apt.conf.d/99no-check-valid-until
- name: Install tools
run: apt-get update && apt-get install --yes patch unzip git gcc make curl pkg-config libc6-i386 build-essential
- name: Install Python source build dependcies
run: apt-get install --yes checkinstall libbz2-dev libc6-dev libgdbm-dev libncursesw5-dev libreadline-gplv2-dev libssl-dev libsqlite3-dev tk-dev
- name: Install Python from source
run: |
curl -o Python-3.6.9.tgz https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz
tar -zxvf Python-3.6.9.tgz
cd Python-3.6.9/
./configure
make install
- name: Checkout r2
run: |
git clone https://github.com/${{ github.repository }}
cd radare2
git fetch origin ${{ github.ref }}
git checkout -b local_branch FETCH_HEAD
- name: Checkout our Testsuite Binaries
run: git clone https://github.com/radareorg/radare2-testbins test/bins
- name: Configure with ACR and build
run: ./configure --prefix=/usr && make
working-directory: radare2
- name: Install with make
run: make install
working-directory: radare2
- name: Install test dependencies
run: python3 -m pip install --user 'git+https://github.com/radareorg/radare2-r2pipe#egg=r2pipe&subdirectory=python'
- name: Run tests
run: cd test && make
working-directory: radare2
env:
PKG_CONFIG_PATH: /usr/lib/x86_64-linux-gnu/pkgconfig
13 changes: 13 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: Publish Docker
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Publish to Registry
uses: elgohr/Publish-Docker-Github-Action@master
with:
name: radare/radare2
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
115 changes: 115 additions & 0 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
name: Radare2 CI PR

on:
pull_request:
branches:
- master

jobs:
build:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
timeout-minutes: 35
strategy:
fail-fast: false
matrix:
name: [linux-acr-gcc-tests, linux-acr-clang-build, linux-meson-gcc-build, linux-meson-gcc-newshell-tests, macos-clang-tests]
include:
- name: linux-acr-gcc-tests
os: ubuntu-latest
build_system: acr
compiler: gcc
run_tests: true
- name: linux-acr-clang-build
os: ubuntu-latest
build_system: acr
compiler: clang
- name: linux-meson-gcc-build
os: ubuntu-latest
build_system: meson
compiler: gcc
- name: linux-meson-gcc-newshell-tests
os: ubuntu-latest
build_system: meson
compiler: gcc
run_tests: true
newshell: true
- name: macos-clang-tests
os: macos-latest
build_system: acr
compiler: clang
run_tests: true

steps:
- uses: actions/checkout@v2
- name: Install pkg-config with Homebrew
if: matrix.os == 'macos-latest'
run: brew install pkg-config
- name: Install python
if: (matrix.run_tests || matrix.build_system == 'meson') && matrix.os != 'macos-latest'
run: sudo apt-get --assume-yes install python3-wheel python3-setuptools
- name: Install meson and ninja
if: matrix.build_system == 'meson'
run: pip3 install --user meson==0.52.0 ninja==1.10.0
- name: Install test dependencies
if: matrix.run_tests
run: pip3 install --user 'git+https://github.com/radareorg/radare2-r2pipe#egg=r2pipe&subdirectory=python'
- name: Install clang
if: matrix.compiler == 'clang' && matrix.os == 'ubuntu-latest'
run: sudo apt-get --assume-yes install clang
- name: Checkout our Testsuite Binaries
uses: actions/checkout@v2
with:
repository: radareorg/radare2-testbins
path: test/bins
- name: Configure with ACR and build
if: matrix.build_system == 'acr'
run: ./configure --prefix=${HOME} && make
env:
CC: ${{ matrix.compiler }}
- name: Build with Meson
if: matrix.build_system == 'meson'
run: |
export PATH=${HOME}/.local/bin:${PATH}
meson --prefix=${HOME} build && ninja -C build
env:
CC: ${{ matrix.compiler }}
- name: Install with make
if: matrix.build_system == 'acr'
run: |
# Install the radare2
export PATH=${HOME}/bin:${HOME}/.local/bin:${PATH}
export LD_LIBRARY_PATH=${HOME}/lib/$(uname -m)-linux-gnu:${HOME}/lib:${HOME}/lib64:${LD_LIBRARY_PATH}
export PKG_CONFIG_PATH=${HOME}/lib/pkgconfig:${HOME}/lib/$(uname -m)-linux-gnu/pkgconfig:${PKG_CONFIG_PATH}
make install
- name: Install with meson
if: matrix.build_system == 'meson'
run: |
# Install the radare2
export PATH=${HOME}/bin:${HOME}/.local/bin:${PATH}
export LD_LIBRARY_PATH=${HOME}/lib/$(uname -m)-linux-gnu:${HOME}/lib:${HOME}/lib64:${LD_LIBRARY_PATH}
export PKG_CONFIG_PATH=${HOME}/lib/pkgconfig:${HOME}/lib/$(uname -m)-linux-gnu/pkgconfig:${PKG_CONFIG_PATH}
ninja -C build install
- name: Run tests
if: matrix.run_tests
run: |
# Running the test suite
export PATH=${HOME}/bin:${HOME}/.local/bin:${PATH}
export LD_LIBRARY_PATH=${HOME}/lib/$(uname -m)-linux-gnu:${HOME}/lib:${HOME}/lib64:${LD_LIBRARY_PATH}
export PKG_CONFIG_PATH=${HOME}/lib/pkgconfig:${HOME}/lib/$(uname -m)-linux-gnu/pkgconfig:${PKG_CONFIG_PATH}
if [ "$NEWSHELL" == "true" ]; then
export R2_CFG_NEWSHELL=1
fi
cd test
radare2 -N -Qc 'e cfg.newshell' -
make
env:
NEWSHELL: ${{ matrix.newshell }}
- name: Run fuzz tests
if: matrix.run_tests && contains(github.event.pull_request.head.ref, 'fuzz')
run: |
export PATH=${HOME}/bin:${HOME}/.local/bin:${PATH}
export LD_LIBRARY_PATH=${HOME}/lib/$(uname -m)-linux-gnu:${HOME}/lib:${HOME}/lib64:${LD_LIBRARY_PATH}
export PKG_CONFIG_PATH=${HOME}/lib/pkgconfig:${HOME}/lib/$(uname -m)-linux-gnu/pkgconfig:${PKG_CONFIG_PATH}
cd test
make fuzz-tests
Loading

0 comments on commit 2449d32

Please sign in to comment.