Skip to content
This repository has been archived by the owner on Dec 15, 2022. It is now read-only.

atom/ci

Repository files navigation

Atom and all repositories under Atom will be archived on December 15, 2022. Learn more in our official announcement

Atom Package CI Scripts

Templates for building your Atom package and running its specs:

Setting up CI for your package

GitHub Actions

  • Copy .github/workflows/main.yml to the same location in your package's repository tree
  • 💥 Your package will now build and run its specs; you can see an example of a configured package here

Travis CI

  • Sign up for an account on Travis CI
  • Copy .travis.yml to the root of your package's repository
  • Setup the Travis CI hook on your package's repository
  • 💥 Your package will now build and run its specs; you can see an example of a configured package here

Appveyor

  • Sign up for an account on Appveyor
  • Add a new project
  • Ensure the Ignore appveyor.yml setting in Settings > General is unchecked
  • Copy appveyor.yml to the root of your package's repository
  • 💥 Your package will now build and run its specs; you can see an example of a configured package here

CircleCI

  • Sign up for an account on CircleCI
  • Create a .circleci directory at the root of your project
  • Copy config.yml to the new directory
  • Commit the changes and push them up to GitHub
  • Add a new project on CircleCI
  • 💥 Your package will now build and run its specs; you can see an example of a configured package here

FAQ

How do I install other Atom packages that my package build depends on?

Set the APM_TEST_PACKAGES environment variable in your CI configuration file to a space-separated list of packages to install before your package's tests run.

env:
  - APM_TEST_PACKAGES="autocomplete-plus some-other-package-here"

What version of Atom is used to run the specs?

It will always download the latest available version. You can read more about the latest Atom release here.

How does it work?

The apm test command assumes your package is using Jasmine specs. You can run the specs locally using Atom's spec runner UI from the View > Developer > Run Package Specs menu or by pressing cmd-ctrl-alt-p. You can run apm help test to learn more about that command.

GitHub Actions

The CI template uses the Atom setup Action to install and set up Atom on a runner. The script then installs dependencies from your package and runs the apm test command to run your package's specs.

Travis CI, CircleCI

The CI template downloads the build-package.sh from this repository. This script then downloads the latest Atom release, installs your package's dependencies, and runs the apm test command to run your package's specs.

Appveyor

The appveyor.yml template uses Chocolatey to download and install the latest version of Atom. apm install is run in your package directory to ensure any node dependencies are available. Finally, the script runs the apm test command to run your package's specs.

What does the output look like?

What packages use this?