Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
jagerman committed Sep 27, 2024
2 parents 006b90a + 102f8ac commit ae6c3f6
Show file tree
Hide file tree
Showing 52 changed files with 3,846 additions and 509 deletions.
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.gitignore export-ignore
.gitattributes export-ignore
audits export-ignore
226 changes: 226 additions & 0 deletions .github/workflows/c-cpp.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,226 @@
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
Loading

0 comments on commit ae6c3f6

Please sign in to comment.