Setting up an Elm project to use CircleCI

I have a simple first Elm app. I’d like to apply CircleCI to the workflow.

I’ve been reading setup instructions but as this is my first use of Elm, CircleCI, and npm I’m still a little vague on the details.

Am I best creating a new directory and starting from scratch setting up the project?

My current project (and github repository) has package.json and elm-tooling.json. The former has "postinstall": "elm-tooling install".

And once I’ve set-up CircleCI does that mean anyone pulling the project from Github won’t have a project that can be built, except with CircleCI?

If this post is too CircleCI and not enough Elm, I’d understand and can delete it.

The way CIs work is:

  1. It clones your repo and cds into it.
  2. You run some installation commands of choice. (Some CIs run npm ci or whatnot automatically for you for convenience if you don’t specify anything.)
  3. You run some test commands of choice.

Basically, you already have a repo (folder), a way to install stuff and a way to test stuff, and now you’re specifying to the CI how to do those things in an automated way. Usually, you don’t need to change much in your repo – it’s more about adding some config file, like config.yml. This does not lock you or other people into only being able to build there.

I would start with the simplest possible thing I can think of – even if it feels suboptimal. Once that works, I’d look into if I can speed it up or so. You can ignore the elm-tooling instructions to begin with if you’re starting out with CIs – that document talks more about optimal caching and stuff that you can dive into later.

1 Like

If you host your app on GitHub why not just use GitHub actions? One platform, great integration, etc…

1 Like

I’d wanted to go with Github Actions first but finding an elm page about CircleCI (lightly) suggested that CircleCI was a more popular choice for Elm developers.

But KISS is my mantra :slight_smile:
So… it’s off to Actions I go.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.