Skip to content

Added big_int, which you gotta have for crypto stuff #124

Added big_int, which you gotta have for crypto stuff

Added big_int, which you gotta have for crypto stuff #124

Workflow file for this run

name: CI Matrix
on:
push:
branches: [ "master", "release" ]
pull_request:
branches: [ "master", "release" ]
permissions:
contents: read
jobs:
build-and-test:
runs-on: ${{ startsWith(matrix.platform, 'arm') && 'ubuntu-24.04-arm' || format('{0}-latest', matrix.os) }} # GitHub-hosted runners
strategy:
matrix:
os: [windows, ubuntu]
compiler: [dmd, ldc]
platform: [x86, x86_64, arm, arm64, riscv64]
exclude:
# No point cross-compiling on Windows; linux is so much faster!
- os: windows
platform: arm
- os: windows
platform: arm64
- os: windows
platform: riscv64
# TODO: DMD ARM64 support is WIP; remove when it releases...
- compiler: dmd
platform: arm64
- compiler: dmd
platform: arm
- platform: arm # TODO: not yet working...
- platform: riscv64 # TODO: not yet working...
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: Setup D Compiler
uses: dlang-community/setup-dlang@v2
with:
compiler: ${{ matrix.compiler == 'dmd' && 'dmd-master' || matrix.compiler }}
# 32-bit linux needs libs to link and run tests...
- name: Install 32-bit Toolchains (Linux)
if: ${{ matrix.os == 'ubuntu' && matrix.platform == 'x86' }}
run: sudo apt-get update && sudo apt-get install -y gcc-multilib
- name: Install 32-bit ARM Toolchains (Linux)
if: ${{ matrix.os == 'ubuntu' && matrix.platform == 'arm' }}
run: sudo dpkg --add-architecture armhf && sudo apt-get update && sudo apt-get install -y libstdc++6:armhf
- name: Build release
if: ${{ github.ref == 'refs/heads/release' }}
run: make PLATFORM=${{ matrix.platform }} CONFIG=release OS=${{ matrix.os }} D_COMPILER=${{ matrix.compiler }}
- name: Build unittest
run: make PLATFORM=${{ matrix.platform }} CONFIG=unittest OS=${{ matrix.os }} D_COMPILER=${{ matrix.compiler }}
- name: Test
if: ${{ success() && (matrix.platform == 'x86_64' || matrix.platform == 'x86' || matrix.platform == 'arm64') }}
run: ./bin/${{ matrix.platform }}_unittest/urt_test
- name: Upload release library
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/release' && matrix.compiler == 'ldc' }}
uses: actions/upload-artifact@v4
with:
name: urt-lib_${{ matrix.os }}_${{ matrix.platform }}
path: ./bin/${{ matrix.platform }}_release/${{ matrix.os == 'windows' && 'urt.lib' || 'liburt.a' }}