diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4565c86..bc22ac6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -name: nim-secp256k1 CI +name: CI on: [push, pull_request] jobs: @@ -7,38 +7,18 @@ jobs: fail-fast: false max-parallel: 20 matrix: - branch: [master] + test_lang: [c, cpp] target: - os: linux cpu: amd64 - TEST_LANG: c - - os: linux - cpu: amd64 - TEST_LANG: cpp - os: linux cpu: i386 - TEST_LANG: c - - os: linux - cpu: i386 - TEST_LANG: cpp - os: macos cpu: amd64 - TEST_LANG: c - - os: macos - cpu: amd64 - TEST_LANG: cpp - os: windows cpu: amd64 - TEST_LANG: c - - os: windows - cpu: amd64 - TEST_LANG: cpp - os: windows cpu: i386 - TEST_LANG: c - - os: windows - cpu: i386 - TEST_LANG: cpp include: - target: os: linux @@ -50,7 +30,7 @@ jobs: os: windows builder: windows-2019 - name: '${{ matrix.target.os }}-${{ matrix.target.cpu }}-${{ matrix.target.TEST_LANG }} (${{ matrix.branch }})' + name: '${{ matrix.target.os }}-${{ matrix.target.cpu }}-${{ matrix.test_lang }}' runs-on: ${{ matrix.builder }} steps: - name: Checkout nim-secp256k1 @@ -145,11 +125,10 @@ jobs: id: nim-cache uses: actions/cache@v2 with: - path: nim - key: 'nim-${{ matrix.target.os }}-${{ matrix.target.cpu }}-${{ steps.versions.outputs.nimbus_build_system }}' + path: NimBinaries + key: 'NimBinaries-${{ matrix.target.os }}-${{ matrix.target.cpu }}-${{ steps.versions.outputs.nimbus_build_system }}' - name: Build Nim and associated tools - if: steps.nim-cache.outputs.cache-hit != 'true' shell: bash run: | curl -O -L -s -S https://raw.githubusercontent.com/status-im/nimbus-build-system/master/scripts/build_nim.sh @@ -164,23 +143,11 @@ jobs: MAKE_CMD="make" fi env MAKE="$MAKE_CMD -j2" ARCH_OVERRIDE=$PLATFORM CC=gcc bash build_nim.sh nim csources dist/nimble NimBinaries - - # clean up to save cache space - cd nim - rm koch - rm -rf nimcache - rm -rf csources - rm -rf tests - rm -rf dist - rm -rf .git - - - name: Setup environment - shell: bash - run: echo '${{ github.workspace }}/nim/bin' >> $GITHUB_PATH + echo '${{ github.workspace }}/nim/bin' >> $GITHUB_PATH - name: Run nim-secp256k1 tests shell: bash working-directory: nim-secp256k1 run: | nimble install -y --depsOnly - env TEST_LANG="${{ matrix.target.TEST_LANG }}" nimble test + env TEST_LANG="${{ matrix.test_lang }}" nimble test diff --git a/README.md b/README.md index b10a1ca..0fac3e2 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![License: Apache](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) ![Stability: experimental](https://img.shields.io/badge/stability-experimental-orange.svg) -![Github action](https://github.com/status-im/nim-secp256k1/workflows/nim-secp256k1%20CI/badge.svg) +![Github action](https://github.com/status-im/nim-secp256k1/workflows/CI/badge.svg) # Introduction diff --git a/secp256k1.nimble b/secp256k1.nimble index 8e821b6..ded90fa 100644 --- a/secp256k1.nimble +++ b/secp256k1.nimble @@ -11,18 +11,16 @@ requires "nim >= 1.2.0" requires "stew" requires "nimcrypto" -proc getLang(): string = - result = "c" +proc test(env, path: string) = + # Compilation language is controlled by TEST_LANG + var lang = "c" if existsEnv"TEST_LANG": - result = getEnv"TEST_LANG" + lang = getEnv"TEST_LANG" -proc test(name: string, lang: string = "c") = - if not dirExists "build": - mkDir "build" - --run - --threads:on - switch("out", ("./build/" & name)) - setCommand lang, "tests/" & name & ".nim" + exec "nim " & lang & " " & env & + " -r -f --hints:off --skipParentCfg " & path task test, "Tests": - test "all_tests", getLang() + test "--threads:on", "tests/all_tests" + test "--threads:off", "tests/all_tests" +