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

build: transition to circle 2 and cache test fixtures in CI #634

Merged
merged 6 commits into from
Jan 9, 2018

Conversation

kjin
Copy link
Contributor

@kjin kjin commented Jan 5, 2018

This change migrates Linux-based CI completely to CircleCI (2.0), and adds caching of node_modules (invalidated when either package-lock.json or package.json change) and build/test/plugins/fixtures (invalidated when test/fixtures/plugin-fixtures.json changes) to both CircleCI and AppVeyor. This results in a 5-8 min speedup for each test run across CircleCI and AppVeyor.

delete all plugin fixtures

  • Removes all directories in test/plugins/fixtures in favor of plugin-fixtures.json
    • This is beneficial because CIs generally invalidate caches when a certain file is changed. Coalescing all the information found in the plugin fixtures makes this a lot easier.

fix CI failures

  • Fixes two CI failures introduced with:
    • Node v9
    • TypeScript v???

modify scripts

  • Names exported functions in scripts rather than using export default
  • Removes some pre-requisite steps in npm scripts for atomicity
  • Adds encrypt-service-account-credentials script to regenerate encrypted system test credentials (for future use; this is meant to be used manually and infrequently)
  • Modifies init-test-fixtures script to generate plugin fixtures based off plugin-fixtures.json file
  • Adds plugin-fixtures.json
  • Changes code coverage reporter to codecov

update system test key file

  • As Travis (rightfully) doesn't allow me to access encryption details for system test credentials, this commit is the result of running encrypt-service-account-credentials to regenerate a new encrypted key file (new encryption details have been added to CircleCI as env vars)

update CI configurations

  • Deletes .travis.yml and circle.yml
  • Adds .circleci/config.yml (w/ caching)
  • Modifies appveyor.yml to add caching and change list of commands to run

update package-lock.json

  • Self-explanatory

@googlebot googlebot added the cla: yes This human has signed the Contributor License Agreement. label Jan 5, 2018
@kjin kjin force-pushed the circle-2 branch 22 times, most recently from ec216f2 to d9b6ed9 Compare January 9, 2018 19:38
@codecov
Copy link

codecov bot commented Jan 9, 2018

Codecov Report

❗ No coverage uploaded for pull request base (master@61f620d). Click here to learn what that means.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff            @@
##             master     #634   +/-   ##
=========================================
  Coverage          ?   96.03%           
=========================================
  Files             ?       31           
  Lines             ?     1615           
  Branches          ?      290           
=========================================
  Hits              ?     1551           
  Misses            ?       64           
  Partials          ?        0

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 61f620d...4a68426. Read the comment docs.

@kjin kjin changed the title build: transition to circle 2 build: transition to circle 2 and cache test fixtures in CI Jan 9, 2018
@kjin kjin requested a review from ofrobots January 9, 2018 20:18
Copy link
Contributor

@DominicKramer DominicKramer left a comment

Choose a reason for hiding this comment

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

LGTM

@kjin kjin merged commit ea3b26e into googleapis:master Jan 9, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla: yes This human has signed the Contributor License Agreement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants