-
Notifications
You must be signed in to change notification settings - Fork 13
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
Refresh project: Update dependencies, update node support, add CI, fix duplex streams #35
Conversation
No CI ran when opening this PR. I'm removing two repo hooks:
|
Added the Community-TC Integration app to this repo (and |
`new Buffer(array or size)` was deprecated in v6, emits a warning in v10.
This comment has been minimized.
This comment has been minimized.
10e7b75
to
919f764
Compare
Uh oh! Looks like an error! Detailsbad indentation of a mapping entry (45:94) 42 | ... |
46da9ce
to
f9a7eb6
Compare
Uh oh! Looks like an error! Detailsmissed comma between flow collection entries (41:44) 38 | ... RunTime: 3600 |
ca4df19
to
12e85b6
Compare
I've fixed the failing test. The test wasn't actually working before either - the exit code of 0 was being read, but the output of I'll summarize the changes in the PR summary. |
Because we're updating node versions, I think the next release is a major version bump to 3.0.0. I can include that version bump in this PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wow, @jwhitlock, I'm impressed! I looked through all of the commits here, in light of the PR comments, and it all checks out. Nice work!
Thanks! This is a week or so of effort, and changes more than I'd like in a PR. I'd be willing to break it up into smaller bits for review. I'd also like @petemoore to look at |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome! Thanks John. Not sure on the .taskcluster.yml
file config, but everything else all looks great!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks truly amazing, thank you so much for this mammoth effort!
Thanks for migrating from Vagrant to docker-compose, that seems like a much more modern and maintainable solution. I see this uses v1 rather than v2 (which I think are incompatible?). Is there a reason for this choice, and if so, is it worth adding a note about why?
.taskcluster.yml
Outdated
curl -sL "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o ~/bin/docker-compose && | ||
chmod +x ~/bin/docker-compose && | ||
~/bin/docker-compose build --build-arg "NODE_VERSION=${env.node_image_tag}" && | ||
~/bin/docker-compose run --rm test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you want to lose all the &&
references, you can format it with -|
and just have line returns, see e.g. this yaml extract.
.taskcluster.yml
Outdated
git config advice.detachedHead "false" && | ||
git checkout --no-progress "${head_rev}" && | ||
mkdir -p ~/bin && | ||
curl -sL "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o ~/bin/docker-compose && |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it worth having retries here to protect against network blips?
One option to do that would be to use the mounts feature which already uses an exponential backoff algorithm (that doesn't impact maxRunTime
when there are delays), e.g. have the following inside the task payload
(i.e. sibling of maxruntime
, env
, command
):
mounts:
- file: bin/docker-compose
content:
url: https://github.com/docker/compose/releases/download/1.29.2/docker-compose-Linux-x86_64
sha256: f3f10cf3dbb8107e9ba2ea5f23c1d2159ff7321d16f0a23051d68d8e2547b323
Note, the sha256
is optional, but I see that it is provided in the release, so might be a nice extra to have to protect against man-in-the-middle modifications. Another advantage (of using the mounts feature) is that the download also gets cached on the worker, so if another task comes in for the same worker that requires the same file, it would get reused.
c9cde34
to
7e80de3
Compare
Uh oh! Looks like an error! DetailsInterpreterError at template.tasks.payload.command[0][2]: unknown context value USER |
Uh oh! Looks like an error! DetailsInterpreterError at template.tasks.payload.command[0][2]: unknown context value USER |
Uh oh! Looks like an error! DetailsInterpreterError at template.tasks.payload.command[0][2]: unknown context value USER |
101c8a5
to
4558d0f
Compare
* Use a mount for docker-compose, with automatic retries * Use docker-compose v2 (not yet integrated into Docker on Linux) * Print the docker engine info * Remove the && from commands (stopping on error is set with bash -e)
Thanks @petemoore! I applied the suggestions in the last commit:
|
Updating this code base for node v16, and to fix issue #34. This involved changing a lot of things while I experimented to get the tests working:
WebSocket
, which will callsocket.destroy()
on the underlying Node socket.mocha --exit
(thanks to Stack Overflow commenter Martin P for suggesting why-is-node-running)new Buffer(<array or size>)
(deprecation warning) toBuffer.from(array)
andBuffer.alloc(size)
.docker-exec-server
todocker-exec-websocket-server
lodash
(from PR Bump lodash from 4.17.19 to 4.17.21 #31)ws
(from PR Bump ws from 7.1.2 to 7.4.6 #32), and then to 8.4.2glob-parent
(from PR Bump glob-parent from 5.0.0 to 5.1.2 #33)es-lint
to 8.8, upgrade.eslintrc
, and fix issuesmocha
to 9.2.0, migrate settings frommocha.opts
topackage.json
docker-compose
, which it downloads and installs.tests/runtests.sh
, since the test setup creates its ownubuntu
container for testing.