awalterschulze / gominikanren

a Go implementation of miniKanren, an embedded Domain Specific Language for logic programming.
Other
38 stars 2 forks source link

deterministic builds + github actions #18

Closed ilya-klyuchnikov closed 3 years ago

ilya-klyuchnikov commented 3 years ago

This is for #6

  1. go.mod - allows to check code into any directory (so the requirement to have it in $GOROOT/src/github.com/awalterschulze/... is gone - which simplifies further steps)
  2. Deterministic dependencies via go.mod
  3. Regenerating with gocc
  4. Prefetching dependencies (including tools) via go mod download - it fetches all the deps specified (with precise versions). Using -x flag at CI - to observe all the information about fetched deps.
  5. go install at CI - installs previously prefetched deps. Also running it with -x flag - to observe that they are taken correctly from cache.
  6. running all checks

You can see the actual run there - https://github.com/ilya-klyuchnikov/gominikanren/runs/2219931605

awalterschulze commented 3 years ago

Great thank you :)

Maybe also a good idea to replace the image pointing to travis in the readme and removing the travis file, but this is the hardest step done. Thank you very much.