diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 5dc2aad..341ba42 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -15,13 +15,15 @@ jobs: matrix: # 10.x, 12.x, node-version: [ 12.x] - operating-system: [ubuntu-latest, windows-latest, macos-latest,'windows-latest'] + operating-system: [ubuntu-latest, windows-latest, macos-latest] steps: - uses: actions/checkout@v2 with: submodules: true - uses: jiro4989/setup-nim-action@v1 + with: + nim-version: '1.4.8' # default is - name: Install nim deps run: nimble install -d -y - name: Setup node @@ -30,7 +32,7 @@ jobs: node-version: ${{ matrix.node }} - name: Install node deps run: | - yarn global add node-gyp + npm install -g node-gyp yarn install --ignore-scripts working-directory: test - name: test @@ -49,4 +51,4 @@ jobs: working-directory: test env: PREBUILD_TOKEN: ${{ secrets.PREBUILD_TOKEN }} - run: yarn prebuild --upload-all -u ${{ secrets.PREBUILD_TOKEN }} \ No newline at end of file + run: yarn prebuild --upload-all ${{ secrets.PREBUILD_TOKEN }} \ No newline at end of file diff --git a/napibindings.nimble b/napibindings.nimble index ba86bbe..3996a25 100644 --- a/napibindings.nimble +++ b/napibindings.nimble @@ -7,9 +7,8 @@ skipDirs = @["test", ".git"] bin = @["napibuild"] requires "docopt" - +import os task test,"test": - withDir "test": - exec "yarn install --ignore-scripts" - exec "nim c -r src/napibuild.nim test/main.nim" - exec "node test/index.js" \ No newline at end of file + exec findExe("yarn") & " install --ignore-scripts --cwd test" + selfExec "c -r " & "src" / "napibuild.nim" & " -r " & "test" / "main.nim" + exec findExe("node") & " " & "test" / "index.js" \ No newline at end of file diff --git a/src/napibuild.nim b/src/napibuild.nim index cd48e03..bafbe11 100644 --- a/src/napibuild.nim +++ b/src/napibuild.nim @@ -24,8 +24,9 @@ var if not args["-C"]: - var releaseFlag = if args["-r"]: "-d:release " else: "--embedsrc " - let r = execCmdEx "nim c --nimcache:" & nimcache & " " & releaseFlag & "--compileOnly --noMain " & projectfile + let releaseFlag = if args["-r"]: "-d:release " else: "--embedsrc " + let vccFlag = when defined(windows): " --cc:vcc " else: "" + let r = execCmdEx "nim c " & vccFlag & " --nimcache:" & nimcache & " " & releaseFlag & "--compileOnly --noMain " & projectfile doAssert r.exitCode == 0, r.output @@ -46,5 +47,5 @@ writeFile(project.dir / "binding.gyp", gyp.pretty) var gypflags = "--directory=" & project.dir if not args["-r"]: gypflags.add(" --debug") -let gypRebuild = execCmdEx "node-gyp rebuild " & gypflags +let gypRebuild = execCmdEx findExe("node-gyp") & " rebuild " & gypflags doAssert gypRebuild.exitCode == 0, gypRebuild.output