diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..264d53c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,48 @@ +name: CI + +on: + push: + branches: [master, main] + pull_request: + branches: [master, main] + +jobs: + test: + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest] + nim-version: ['2.2.4', 'stable'] + + runs-on: ${{ matrix.os }} + name: ${{ matrix.os }} / Nim ${{ matrix.nim-version }} + + steps: + - uses: actions/checkout@v4 + + - name: Setup Nim + uses: jiro4989/setup-nim-action@v2 + with: + nim-version: ${{ matrix.nim-version }} + repo-token: ${{ secrets.GITHUB_TOKEN }} + + - name: Cache nimble packages + uses: actions/cache@v4 + with: + path: ~/.nimble + key: ${{ runner.os }}-nimble-${{ matrix.nim-version }}-${{ hashFiles('*.nimble') }} + restore-keys: | + ${{ runner.os }}-nimble-${{ matrix.nim-version }}- + ${{ runner.os }}-nimble- + + - name: Install dependencies + run: nimble install -y --depsOnly + + - name: Build + run: nimble build -y + + - name: Run allocation tests + run: nimble test_alloc -y + + - name: Run FFI context tests + run: nimble test_ffi -y