Skip to content

Commit

Permalink
test Build nimble with -d:nimNimbleBootstrap
Browse files Browse the repository at this point in the history
  • Loading branch information
ringabout committed Apr 1, 2024
1 parent 8dfb743 commit 283d72e
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 0 deletions.
5 changes: 5 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,8 @@ jobs:
# there's no need to add nimblepkg unit tests --
# they are run by tmoduletests.nim
- run: ./src/nimble install -y
- name: Build nimble with `-d:nimNimbleBootstrap`
run: |
nim c -d:release -r tests/private/clone.nim
nim c -d:nimNimbleBootstrap -d:release src/nimble.nim
49 changes: 49 additions & 0 deletions tests/private/clone.nim
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import std/[os, uri, strformat]
import std/private/gitutils

when defined(nimPreviewSlimSystem):
import std/assertions

proc exec(cmd: string) =
echo "deps.cmd: " & cmd
let status = execShellCmd(cmd)
doAssert status == 0, cmd

proc execRetry(cmd: string) =
let ok = retryCall(call = block:
let status = execShellCmd(cmd)
let result = status == 0
if not result:
echo fmt"failed command: '{cmd}', status: {status}"
result)
doAssert ok, cmd

proc cloneDependency(destDirBase: string, url: string, commit = commitHead,
appendRepoName = true) =
let destDirBase = destDirBase.absolutePath
let p = url.parseUri.path
let name = p.splitFile.name
var destDir = destDirBase
if appendRepoName: destDir = destDir / name
let quotedDestDir = destDir.quoteShell
if not dirExists(destDir):
# note: old code used `destDir / .git` but that wouldn't prevent git clone
# from failing
execRetry fmt"git clone -q {url} {quotedDestDir}"
if isGitRepo(destDir):
let oldDir = getCurrentDir()
setCurrentDir(destDir)
try:
execRetry "git fetch -q"
exec fmt"git checkout -q {commit}"
finally:
setCurrentDir(oldDir)
else:
quit "FAILURE: " & destdir & " already exists but is not a git repo"

proc command =
const distDir = "dist"
const commit = "3fa15df7d27ecef624ed932d60f63d6a8949618d"
cloneDependency(distDir, "https://github.com/nim-lang/checksums.git", commit)

command()

0 comments on commit 283d72e

Please sign in to comment.