Best way to Continuous Integration and Automated Tests

Hi,
I have a package called NeuralFieldEq.jl and I’m having some troubles regarding the continuous integration and test automation.

When I deployed the package I used Coveralls and Travis. However, when the v0.1.1 of the package was released, Travis stopped the builds (my account is free). Since this package was developed within the scope of my thesis, a continuous integration paid solution do not suit my purpose.

I’m searching for other solutions and I found GitHub Actions (free) or Circle-CI (with free minutes renewed monthly). But I have many difficulties on how I setup the .yml files, etc, even the integration with Coveralls I don’t know how to do it.

Can someone give me a help? Point out some tutorials, give some hints or explain the easiest way to proper define a CI and automation tests workflow?

Sorry for the noob question, but this is the first time that I’m working with this kind of things.
Thank you very much,
Tiago

1 Like

Most Julia packages use Github Actions these days. I would look at https://github.com/invenia/PkgTemplates.jl to help you set it up.

6 Likes

If you want just a quick step by step: Create new package · JuliaNotes.jl

That will automatically setup CI. I never used Coveralls, though.

For GitHub Actions CI, you can use this example as a starting point:

Hello,
Sorry for my absence, but I’ve took an ugly crash in the day after writing this post. Broke my foot and had to be operated in order to replace my ankle. Now I’m much better and decided to go back to this topic.

I’ve copy pasted the script that @dilumaluthge posted in that post he mentioned. But I’ve got this error:

I’ve installed the Documenter.jl in the package environment:
image
But the error persists, any help? I’ll create a dummy package from scratch and use the PkgTemplate to generate all the files needed and try to understand the difference between my package.

Probably this is a dummy error, but this is a new world for me and I’m a bit noob yet
Thanks!!

Your package doesn’t have any documentation to build and deploy, so you can just remove the corresponding CI job: just delete the line docs: and everything that comes after it in your ci.yml.

You also shouldn’t add Documenter as a dependency of your package (unless you need it of course). If you want to use Documenter to build the documentation for your package, you should use a separate environment (usually docs/Project.toml, which is what the failing CI job tries to access).

1 Like

Thanks a lot! I’ve already deleted the Documenter dependency. I need to study this package management issues more in depth!