agentm / project-m36

Project: M36 Relational Algebra Engine
The Unlicense
876 stars 47 forks source link

Add CI #260

Closed hughjfchen closed 3 years ago

hughjfchen commented 4 years ago

This PR add CI capability to the project. It builds a docker image as the output.

agentm commented 4 years ago

I haven't forgotten about this- I'm hoping to wrap this into a 0.8 release soon.

Is there a secure means of communication we can use to exchange the necessary credentials?

hughjfchen commented 4 years ago

Would you mind telling me your email address here?

agentm commented 4 years ago

Sorry, I missed your note.

I am "agentm" at the domain "themactionfaction.com". My PGP public key is below.

-----BEGIN PGP PUBLIC KEY BLOCK-----

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
PMSM8zXVI/xu7HQBgg==
=SP8+
-----END PGP PUBLIC KEY BLOCK-----
hughjfchen commented 4 years ago

Thanks for putting a great effort into this patch! I can see how your CI framework helped in making this modular and readable.

In the interests of maintenance, I would like to propose some changes:

  • eliminate uncalled scripts
  • minimize dependencies
  • add comments to scripts
  • add CI documentation

In terms of merging this, I would like to do it in steps to better understand how everything fits together. I think a great first step would be to have a working nix derivation for project-m36 as well as a useful shell.nix.

What do you think?

Yes. The ci framework could build a nix derivation for project-m36 if we change the nix-bulid attribute within the build.sh:

nix-build -A static-project-m36

and the shell.nix also works.

agentm commented 3 years ago

Hi @hughjfchen! I experimented with Github Workflows and discovered that they are much faster than Travis CI, especially with nix builds. So I switched to Github workflows with nix to build the docker images while retaining travis and appveyor for test CI (though I should test Github workflows for those as well).

I used your nix rules to make it all work so that saved me a lot of time- thanks!

hughjfchen commented 3 years ago

Great to heard that you make it. I'm glad that I can help with this.