| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- name: C/C++ CI
- on:
- push:
- branches: [ master ]
- pull_request:
- jobs:
- build-alpine:
- timeout-minutes: 15
- runs-on: ubuntu-22.04
- strategy:
- matrix:
- config:
- - {arch: x86_64, branch: latest-stable}
- - {arch: x86, branch: latest-stable}
- - {arch: aarch64, branch: latest-stable}
- - {arch: armhf, branch: latest-stable}
- - {arch: armv7, branch: latest-stable}
- - {arch: ppc64le, branch: latest-stable}
- - {arch: riscv64, branch: edge}
- - {arch: s390x, branch: latest-stable}
- steps:
- - name: Setup Alpine Linux
- uses: jirutka/setup-alpine@v1
- with:
- arch: ${{ matrix.config.arch }}
- branch: ${{ matrix.config.branch }}
- - name: Install dependencies
- shell: alpine.sh --root {0}
- run: |
- apk add git cmake gcc g++ make
- - name: Checkout repository
- uses: actions/checkout@v3
- with:
- submodules: true
- - name: Build RandomX
- shell: alpine.sh {0}
- run: |
- mkdir build
- cd build
- cmake ..
- make -j$(nproc)
- - name: Run tests
- shell: alpine.sh {0}
- run: |
- build/randomx-tests
- build-ubuntu:
- timeout-minutes: 5
- runs-on: ${{ matrix.config.os }}
- strategy:
- matrix:
- config:
- - {os: ubuntu-20.04, c: gcc-11, cpp: g++-11}
- - {os: ubuntu-22.04, c: gcc-12, cpp: g++-12}
- steps:
- - name: Install dependencies
- run: |
- sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
- sudo apt update
- sudo apt install -y git build-essential cmake ${{ matrix.config.c }} ${{ matrix.config.cpp }}
- - name: Checkout repository
- uses: actions/checkout@v3
- with:
- submodules: true
- - name: Build RandomX
- run: |
- mkdir build
- cd build
- cmake ..
- make -j$(nproc)
- - name: Run tests
- run: |
- build/randomx-tests
- build-windows-msys2:
- timeout-minutes: 15
- runs-on: windows-latest
- strategy:
- matrix:
- config:
- - {c: "gcc", cxx: "g++"}
- - {c: "clang", cxx: "clang++"}
- defaults:
- run:
- shell: msys2 {0}
- steps:
- - name: Checkout repository
- uses: actions/checkout@v3
- with:
- submodules: recursive
- - name: Setup MSYS2
- uses: eine/setup-msys2@v2
- with:
- update: true
- install: mingw-w64-x86_64-toolchain mingw-w64-x86_64-clang mingw-w64-x86_64-lld mingw-w64-x86_64-cmake make
- - name: Build RandomX
- run: |
- mkdir build
- cd build
- cmake .. -G "Unix Makefiles" -DCMAKE_C_COMPILER=${{ matrix.config.c }} -DCMAKE_CXX_COMPILER=${{ matrix.config.cxx }}
- make -j$(nproc)
- - name: Run tests
- run: |
- build/randomx-tests.exe
- build-windows-msbuild:
- timeout-minutes: 5
- runs-on: windows-${{ matrix.config.os }}
- strategy:
- matrix:
- config:
- - {arch: x64, os: 2019, vs: Visual Studio 16 2019, msbuild: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\MSBuild\\Current\\Bin\\amd64\\"}
- - {arch: x64, os: 2022, vs: Visual Studio 17 2022, msbuild: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\Msbuild\\Current\\Bin\\amd64\\"}
- - {arch: Win32, os: 2019, vs: Visual Studio 16 2019, msbuild: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\MSBuild\\Current\\Bin\\"}
- - {arch: Win32, os: 2022, vs: Visual Studio 17 2022, msbuild: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\Msbuild\\Current\\Bin\\"}
- steps:
- - name: Checkout repository
- uses: actions/checkout@v3
- with:
- submodules: recursive
- - name: Setup cmake
- uses: lukka/get-cmake@latest
- - name: Build RandomX
- run: |
- mkdir build
- cd build
- cmake .. -G "${{ matrix.config.vs }}" -A ${{ matrix.config.arch }}
- & "${{ matrix.config.msbuild }}msbuild" -v:m /m /p:Configuration=Release randomx-tests.vcxproj
- - name: Run tests
- run: |
- build/Release/randomx-tests.exe
- build-macos:
- timeout-minutes: 5
- runs-on: ${{ matrix.os }}
- strategy:
- matrix:
- os: [macos-11, macos-12, macos-13]
- steps:
- - name: Checkout repository
- uses: actions/checkout@v3
- with:
- submodules: recursive
- - name: Install dependencies
- run: HOMEBREW_NO_AUTO_UPDATE=1 brew install cmake
- - name: Build RandomX
- run: |
- mkdir build
- cd build
- cmake ..
- make -j3
- - name: Run tests
- run: |
- build/randomx-tests
- build-freebsd:
- timeout-minutes: 15
- runs-on: ${{ matrix.os.host }}
- strategy:
- matrix:
- os:
- - name: freebsd
- architecture: x86-64
- version: '13.2'
- host: ubuntu-22.04
- - name: freebsd
- architecture: arm64
- version: '13.2'
- host: ubuntu-22.04
- steps:
- - name: Checkout repository
- uses: actions/checkout@v3
- with:
- submodules: recursive
- - name: Build RandomX
- uses: cross-platform-actions/action@v0.19.0
- with:
- operating_system: ${{ matrix.os.name }}
- architecture: ${{ matrix.os.architecture }}
- version: ${{ matrix.os.version }}
- shell: bash
- run: |
- sudo pkg install -y cmake
- mkdir build && cd build
- cmake ..
- make -j2
- ./randomx-tests
|