Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: move to circleci #2390

Merged
merged 11 commits into from
Aug 13, 2018
Merged

chore: move to circleci #2390

merged 11 commits into from
Aug 13, 2018

Conversation

shellscape
Copy link
Contributor

This PR contains:

  • bugfix
  • feature
  • refactor
  • tests
  • documentation
  • metadata

Breaking Changes?

  • yes
  • no

If yes, please describe the breakage.

Please Describe Your Changes

This PR proposes to move from Travis CI to Circle CI. Benefits will include:

  • Faster test run times
  • Better resource allocation
  • Use of custom containers for control of the environment
  • Linting, Test, and Coverage workflows to improve CI for Pull Requests

package.json Outdated
}
"name": "rollup",
"version": "0.64.1",
"description": "Next-generation ES module bundler",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you not do this prettier change?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WIP :) this is not yet ready for review. Please hold off until that tag is removed.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@TrySound it's ready 🎉

@shellscape shellscape changed the title (WIP) chore: move to circleci chore: move to circleci Aug 9, 2018
@shellscape
Copy link
Contributor Author

shellscape commented Aug 9, 2018

This PR is ready for review. A few notes:

  • CircleCI's Github notification on this PR has been muted using a setting that prevents it from showing on other PRs until this is ready to move forward.
  • Node v4 has been removed as it is out of all stages of LTS maintenance, and unsupported by Node.
  • Average run time on Circle under the proposed configuration is between 5 and 6 minutes. That compares to an average 15 minute runtime on Travis (loose figures from a quick glance through logs)
  • This configuration also runs linting as a CI job and will mean that PRs must pass linting to pass CI.
  • This configuration adds a security audit using npm audit
  • Dockerfiles for the containers used by this configuration can be found here: https://github.com/rollup/containers

The following tasks need to be performed after this PR has been approved, but before merging:

  • CircleCI notification setting needs to be enabled
  • TravisCI webhook needs to be removed in the TravisCI interface (and not through Github. Otherwise we'll get some build wonkiness in PRs for a little bit. Travis' webhook tends to be quite sticky)

@guybedford
Copy link
Contributor

I'm just wondering what would we need to do to get the CircleCI check to display in the PR here?

@shellscape
Copy link
Contributor Author

@guybedford see my previous comment. it's a global setting in CircleCI. If I turn it on here, it tends to display false positives on other PRs. To view the last build of this branch: https://circleci.com/gh/rollup/rollup/tree/chore%2Ftravis-to-circle

@guybedford
Copy link
Contributor

The times do look pretty good there I must say. Perhaps this will even help with our watcher file descriptor flake issues :)

@@ -10,9 +10,9 @@ init:
environment:
matrix:
# node.js
- nodejs_version: 4
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should keep Node 4 for now I think.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you may remove node4 support with 0.65 release

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Node 4 has been out of active and maintenance LTS since April, and has passed end of live and is unsupported. (https://github.com/nodejs/Release#end-of-life-releases) This is a prudent change.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fair enough. Given that I agree with @shellscape to remove it for 0.65. But we should have a discussion before we actually change the TypeScript output target to match that in the future as this would have some hidden implications.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Debian stable packages 4.8.2, and since sindresorhus/pretty-ms@b5a583d, rollup doesn't run on nodejs 4 anymore.

Copy link
Contributor

@guybedford guybedford left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has my approval, but @lukastaegert please check this one as well before merge.

Copy link
Member

@lukastaegert lukastaegert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work. One final note from me: Currently, npm run lint uses the --fix options. While this is probably exactly what we want locally and in the commit hook, the check on CI should probably skip the fixing since it is not committing any changes after that.

Instead I would prefer if CI would run a different script, e.g. npm run lint:ci, that does not auto-correct so that we are actually sure only valid code is merged.

@shellscape
Copy link
Contributor Author

@lukastaegert requested changes made!

package.json Outdated
"ci:test": "npm run test && npm run build:bootstrap && npm run test:only",
"lint": "tslint --project . --fix && eslint --fix test/test.js test/*/index.js test/utils.js test/**/_config.js",
"lint:nofix": "tslint --project . && eslint test/test.js test/*/index.js test/utils.js test/**/_config.js",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Copy link
Member

@lukastaegert lukastaegert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! From my side you can merge and switch CIs at any time

@shellscape
Copy link
Contributor Author

@lukastaegert thanks! The last build for the merge succeeded (https://circleci.com/gh/rollup/rollup/99), so we're good to go.

@shellscape shellscape merged commit ed8693b into master Aug 13, 2018
@shellscape shellscape deleted the chore/travis-to-circle branch August 13, 2018 12:24
adrianheine referenced this pull request in rollup/rollup-plugin-commonjs Oct 11, 2018
* Refactorings from #331

* Update dependencies

* Update dependencies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants