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

CI should impose stricter standers on commits containing version bumps #167

Open
sjelin opened this issue Nov 30, 2016 · 0 comments
Open

Comments

@sjelin
Copy link
Contributor

sjelin commented Nov 30, 2016

As we've discussed in person, e2e android CI tests are impossible on circle and travis. Still, here's a proposal for requiring npm test be run on version bumps:

  1. We can check if a PR/commit is a version bump using
    // This is pseudo code, don't take it too literally
    exec('npm view . version') === exec('npm view webdriver-manager version')
    This is more reliable than diffing require('package.json').version from HEAD and HEAD^
  2. If a commit is a version bump, npm test (and related CI commands) should ensure the following:
    • We are only one commit ahead of master:
      exec('git rev-parse HEAD^') ===
          exec('git ls-remote -q https://github.com/angular/webdriver-manager.git HEAD').split(' ')[0]
    • git diff-tree --no-commit-id --name-only -r HEAD shows the only files changed are package.json, CHANGELOG.md, and npm-test-history.json (more on that last file in a second), and package.json has only had its version changed
  3. Whenever npm test passes, we do the following:
    require('npm-test-history.json')[os.type()] = currentHash;
    Where currentHash is git rev-parse HEAD if this isn't a version bump, git rev-parse HEAD^ if this is
  4. On CI, if the PR is a version bump, in addition to (2), we make sure all the entries in npm-test-history.json equal git rev-parse HEAD^

This wouldn't be as good as real android CI, but it would stop us from releasing any bugs. It would also provide a clear log of the last time npm test was run on each OS

sjelin added a commit to sjelin/webdriver-manager that referenced this issue Dec 1, 2016
Sadly, x86 emulation is impossible (no hardware extensions on circle) and arm is
unworkably slow, so no android tests.  See
angular#167 for ideas about work
arounds
sjelin added a commit to sjelin/webdriver-manager that referenced this issue Dec 1, 2016
Sadly, x86 emulation is impossible (no hardware extensions on circle) and arm is
unworkably slow, so no android tests.  See
angular#167 for ideas about work
arounds
sjelin added a commit to sjelin/webdriver-manager that referenced this issue Dec 1, 2016
Sadly, x86 emulation is impossible (no hardware extensions on circle) and arm is
unworkably slow, so no android tests.  See
angular#167 for ideas about work
arounds
sjelin added a commit to sjelin/webdriver-manager that referenced this issue Dec 1, 2016
Sadly, x86 emulation is impossible (no hardware extensions on circle) and arm is
unworkably slow, so no android tests.  See
angular#167 for ideas about work
arounds

Removed travis tests since circle tests are cooler anyway
sjelin added a commit to sjelin/webdriver-manager that referenced this issue Dec 1, 2016
Sadly, x86 emulation is impossible (no hardware extensions on circle) and arm is
unworkably slow, so no android tests.  See
angular#167 for ideas about work
arounds

Removed travis tests since circle tests are cooler anyway
sjelin added a commit to sjelin/webdriver-manager that referenced this issue Dec 1, 2016
Sadly, x86 emulation is impossible (no hardware extensions on circle) and arm is
unworkably slow, so no android tests.  See
angular#167 for ideas about work
arounds

Removed travis tests since circle tests are cooler anyway
sjelin added a commit to sjelin/webdriver-manager that referenced this issue Dec 1, 2016
Sadly, x86 emulation is impossible (no hardware extensions on circle) and arm is
unworkably slow, so no android tests.  See
angular#167 for ideas about work
arounds

Removed travis tests since circle tests are cooler anyway

Made some timeouts longer because I guess circle is slow.  Also improved some
an error path in downloader because it was a problem while debugging.

Sample output: https://circleci.com/gh/sjelin/webdriver-manager/31
sjelin added a commit to sjelin/webdriver-manager that referenced this issue Dec 1, 2016
Sadly, x86 emulation is impossible (no hardware extensions on circle) and arm is
unworkably slow, so no android tests.  See
angular#167 for ideas about work
arounds

Removed travis tests since circle tests are cooler anyway

Made some timeouts longer because I guess circle is slow.  Also improved some
an error path in downloader because it was a problem while debugging.

Sample output: https://circleci.com/gh/sjelin/webdriver-manager/31

Closes angular#165
sjelin added a commit to sjelin/webdriver-manager that referenced this issue Dec 16, 2016
Sadly, x86 emulation is impossible (no hardware extensions on circle) and arm is
unworkably slow, so no android tests.  See
angular#167 for ideas about work
arounds

Removed travis tests since circle tests are cooler anyway

Made some timeouts longer because I guess circle is slow.  Also improved some
an error path in downloader because it was a problem while debugging.

Sample output: https://circleci.com/gh/sjelin/webdriver-manager/31

Closes angular#165
sjelin added a commit to sjelin/webdriver-manager that referenced this issue Dec 16, 2016
Sadly, x86 emulation is impossible (no hardware extensions on circle) and arm is
unworkably slow, so no android tests.  See
angular#167 for ideas about work
arounds

Removed travis tests since circle tests are cooler anyway

Made some timeouts longer because I guess circle is slow.  Also improved some
an error path in downloader because it was a problem while debugging.

Sample output: https://circleci.com/gh/sjelin/webdriver-manager/31

Closes angular#165
sjelin added a commit to sjelin/webdriver-manager that referenced this issue Dec 16, 2016
Sadly, x86 emulation is impossible (no hardware extensions on circle) and arm is
unworkably slow, so no android tests.  See
angular#167 for ideas about work
arounds

Removed travis tests since circle tests are cooler anyway

Made some timeouts longer because I guess circle is slow.  Also improved some
an error path in downloader because it was a problem while debugging.

Sample output: https://circleci.com/gh/sjelin/webdriver-manager/31

Closes angular#165
sjelin added a commit that referenced this issue Dec 21, 2016
Sadly, x86 emulation is impossible (no hardware extensions on circle) and arm is
unworkably slow, so no android tests.  See
#167 for ideas about work
arounds

Removed travis tests since circle tests are cooler anyway

Made some timeouts longer because I guess circle is slow.  Also improved some
an error path in downloader because it was a problem while debugging.

Sample output: https://circleci.com/gh/sjelin/webdriver-manager/31

Closes #165
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant