-
Notifications
You must be signed in to change notification settings - Fork 435
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
Add Elm language support #934
Conversation
Hi, there! Thank you for your interest in adding Elm to Travis CI. If you have not done so, please read https://docs.travis-ci.com/user/languages/community-supported-languages/ for some additional details. (Some of the details are a bit out of date; in particular, the bits on |
Yep! That page was my starting point. 😁 |
@BanzaiMan Just wanted to check - is there anything you need from me on this? Or just waiting on review? |
Please gather a few other volunteers to provide support. Thanks. |
@BanzaiMan @rtfeldman I can help |
I can help as well. I'll also add this to the elm-community projects list so we can document who's actively part of the support team. |
@BanzaiMan done! 😄 |
@rtfeldman I can help! |
@BanzaiMan friendly ping! 😃 |
@BanzaiMan anything we still need to do to unblock review? |
@BanzaiMan friendly ping! 🙂 |
lib/travis/build/script/elm.rb
Outdated
end | ||
|
||
def install_elm | ||
sh.cmd 'npm install -g [email protected]', retry: true |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
Am I correct to understand that Elm requires a Node.js/JavaScript image? |
@BanzaiMan Elm doesn't, but |
Are there other requirements, such as required Node.js version and NPM version? |
@BanzaiMan ideally Node 6 and npm 3 (any minor versions within those major versions should be fine). |
lib/travis/build/script/elm.rb
Outdated
module Travis | ||
module Build | ||
class Script | ||
class Elm < Script |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
.nvmrc
Outdated
@@ -0,0 +1 @@ | |||
6.10.0 |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
lib/travis/build/script/elm.rb
Outdated
module Travis | ||
module Build | ||
class Script | ||
class Elm < Travis::Build::Script::NodeJs |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
lib/travis/build/script/elm.rb
Outdated
end | ||
|
||
def install_elm | ||
npm_install "-g elm@elm-#{elm_version}" |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
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.
With the suggested changes, the build proceeds to user-defined phases.
lib/travis/build/script/elm.rb
Outdated
end | ||
|
||
def install_elm | ||
npm_install "-g elm@elm-#{elm_version}" |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
lib/travis/build/script/elm.rb
Outdated
DEFAULTS = { | ||
elm: '0.19.0', | ||
elm_test: '0.19.0', | ||
elm_format: '0.19.0' |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
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.
More suggestions; for improving log readability.
Thank you, @rtfeldman! It looks very good. We'll be moving to https://travis-ci.community/ for support issues. We'll tweak the display text accordingly before releasing. The current plan is to announce Elm support on |
Needs docs PR. |
Is this something I should do? 😄 |
@rtfeldman I think I can do this, given the short time frame we've got. I should've pointed this out much earlier. |
@rtfeldman What is the intended interactions among language: elm
elm: 0.20.0 # a future release will use Elm 0.20.0, but I am unfamiliar with the Elm ecosystem, but I imagine that this is not an ideal situation. From the user's perspective, its seems to me that |
On a related note: how useful is the matrix expansion on |
We plan to announce this tomorrow (2018-11-27) with the changes I suggested earlier. Namely:
|
@BanzaiMan that all sounds good! Do you need me to make those changes? |
@rtfeldman I can work on the changes I've suggested. |
See 9fbe7e4, including specs, which show that:
|
Looks good, thanks for all your help @BanzaiMan! Super excited to see this land! 😃 |
This adds Elm support to Travis.
Happy to do as much revision to this as necessary! Also I'd be happy to push branches of some of my Elm projects to have them use
language: elm
in their.travis.yml
files for the staging tests.