Commit graph

99 commits

Author SHA1 Message Date
Matt Ellis 1a1c44b71e Update travis webhook 2017-11-15 11:42:26 -08:00
Matt Ellis 8e4b03cfac Point at our build result filtering webhook 2017-11-13 12:05:32 -08:00
Matt Ellis 34fa7f7151 Fetch entire history 2017-11-06 11:07:57 -08:00
Matt Ellis fc14329cfc Stop using yarn scripts for building
We have Makefiles, so we might as well use them, instead of spliting
build logic across two systems.
2017-10-16 10:47:37 -07:00
Matthew Riley 4daa7ca342 Update to latest version of Yarn 2017-10-13 14:44:08 -07:00
Matt Ellis 9660da4d14 Run Travis on both macOS and Linux
Unlike go binaries (where we can cross compile) the node module that
we publish needs to be built on the platform we publish for. Update
our `.travis.yml` file to also build on macOS and fix the publishing
script so we don't don't cross publish Darwin from Linux. Once we have
CI working for Windows, we'll remove the loop over PUBLISH_GOOS and
each build will publish just the artifacts for the host OS.
2017-10-11 11:40:35 -07:00
Matt Ellis 0a835bd14a Use explicit targets in Makefile for Travis
Defer build and publish logic into the makefiles instead of trying to
use Travis to do so. This let's us sidestep Travis's not great error
handling (see pulumi/home#21 for more details)
2017-09-28 13:12:13 -07:00
Matthew Riley 80364ac68d Publish builds for topic branches
Use $TRAVIS_BRANCH to name published artifact
2017-09-21 17:08:41 -07:00
joeduffy dcdf780b09 Move after_script steps to script so they fail fast
See https://blog.travis-ci.com/after_script_behavior_changes/.
2017-09-21 15:02:31 -07:00
Joe Duffy 5e3f8041bc Adopt new pulumi/home repo name 2017-09-21 14:09:35 -07:00
joeduffy 2a30a0f5f0 Don't redundantly make configure twice 2017-09-14 14:33:33 -07:00
joeduffy ba67a72d88 Eliminate unused envvar 2017-09-12 06:53:42 -07:00
joeduffy 791b90aa33 Swap sdk / nodejs 2017-09-11 15:34:06 -07:00
joeduffy 2ef6b89b82 Add one-time Travis make configure in build dir 2017-09-11 15:30:42 -07:00
joeduffy 4c781da93b Add instructions for make configure
And also move the Node.js SDK-specific parts into the sdk/nodejs/ directory.
2017-09-11 15:17:11 -07:00
joeduffy 13df916cfe Put the Node.js SDK bin/ on $PATH for Travis 2017-09-08 06:19:22 -07:00
joeduffy 527aee7b15 Clone pulumi 2017-09-07 21:52:58 -07:00
Joe Duffy 0e3a01c684 Update the publish scripts for the new package structure (#334) 2017-09-07 11:07:52 -07:00
joeduffy ad54031fb2 Install Node.js 6.10.x in Travis 2017-09-05 10:26:05 -07:00
joeduffy 3ff10edcc4 Add a make configure target
This change adds a `make configure` target, which handles preparing
the environment for building the project.  This includes existing
steps, like dep ensure and yarn installing the Node.js SDK NPM
dependencies, and also includes downloading the right Node.js/V8
includes, putting them in the right place, and then generating the
appropriate node-gyp project files that reference those includes.
2017-09-04 11:35:21 -07:00
joeduffy 1e00bc7db4 Fix up .travis.yml to use Node.js SDK rather than LumiJS 2017-09-04 11:35:21 -07:00
Luke Hoban 2e22c243bc Adopt Go 1.9 in Travis 2017-09-02 12:10:28 -07:00
joeduffy 4ea7a55aca Make all by default 2017-08-06 08:52:32 -07:00
Joe Duffy 5da78c036b Convert to Dep 2017-08-01 18:37:06 -07:00
joeduffy 4699b874db Revert "The Go vendoring saga continues"
This reverts commit f939651c64.

This particular saga appears to never end...
2017-08-01 17:51:38 -07:00
joeduffy ceec05f627 Fix up a few stale Dep/Godeps references 2017-08-01 15:48:08 -07:00
joeduffy f939651c64 The Go vendoring saga continues
We are now on our fourth vendoring tool: Govendor.  This appears to
be about 10X faster than Dep, fails less frequently, and has a rich,
well documented set of commands (that make far more intuitive sense
to me, particularly when compared to Dep).  I could never really get
Godep to work with vendor/ correctly, whereas Govendor did the trick
right away.  Lastly, Terraform uses it, so we'll probably have fewer
headaches in that department also.
2017-08-01 06:23:14 -07:00
joeduffy 232ed7e248 Goodbye, custom AWS provider code
😥

Preparing to RI the tfbridge branch into master.
2017-07-21 14:41:01 -07:00
joeduffy dffdb29799 Install the AWS CLI as a prerequisite 2017-07-21 10:18:55 -07:00
joeduffy f2537ecab8 Force publishes
To workaround the fact that our repos end in a dirty state after
the CI job finishes, I'm adding PUBFORCE=true to the CI script.
pulumi/lumi#300 tracks figuring out the root cause and removing it.
2017-07-21 08:09:23 -07:00
joeduffy 2670e42c93 Publish built binaries upon successful push CI to master
This adds a new make target, publish, that will create a release
package and upload it to an S3 bucket.  This package simply contains
the built CLI plus the core library packages, lumi, lumirt, and lumijs.

This target is invoked automatically at the end of a successful
Travis run against a push to master.
2017-07-20 14:52:40 -07:00
Luke Hoban 1d266e38aa Add Go code coverage reports to nightly tests
Adds a make task to generate code coverage for all Go sources.

That make task re-runs the tests, and can be fairly expensive,
so it is enabled only in the nightly tests for now.

Part of #206.
2017-06-23 16:07:05 -07:00
Joe Duffy b4e8af9f32 Enable VM-based builds in Travis (#264)
This change enables VM-based builds in Travis, versus the default of
container-based builds.  This will give us more memory (7.5GB rather
than 4GB max), and more compute (~2, bursted rather than 2).  This
may help to fix some of the build/test speed time issues we are seeing.
2017-06-22 17:56:45 -07:00
joeduffy 9179d58eb1 Install GoMetaLinter in Travis
And also rejigger the Makefiles to properly error if it's missing.
2017-06-21 14:23:48 -07:00
Luke Hoban c265620f28 Makefile updates
Make nightly tests more verbose to avoid 10 minute
timeout in Travis when we have no test output.

Run aws provider tests by default again on full builds.
2017-06-17 15:43:50 -07:00
Luke Hoban e27549e5c2 Add nightly build target
Adds a nightly build target that runs the long running provider
and examples tests.  Enables travis to run this on cron jobs,
which we will configure to trigger nightly.
2017-06-16 09:53:07 -07:00
joeduffy cfaa7c9310 Eliminate use of nonstandard tools
This change eliminates the use of nonstandard tools in our build:

* `go test` automatically uses `GOMAXPROCS` for its parallelism
  setting.  In modern Go, this is now set to the number of processors.
  So, there is no need to set it explicitly using `nproc`.

* We can avoid `realpath` in the `lumijs` executable by making it
  a Node.js file and using a relative require import of main.

* We can avoid `realpath` in our Makefiles by just using `pwd`.
2017-06-03 11:08:09 -07:00
joeduffy 39db4dca63 Also build the Lumi stdlib during make all 2017-06-02 15:26:39 -07:00
Joe Duffy 8bbe89bd75 Makeify more; add a "full build" target (#193)
* Makeify more; add a "full build" target

This change uses make for more of our tree.  Namely, the AWS provider
and LumiJS compilers each now use make to build and/or install them.
Not only does this bring about some consistency to how we build and
test things, but also made it easy to add a full build target:

    $ make all

This target will build, test, and install the core Go tools, the LumiJS
compiler, and the AWS provider, in that order.

Each can be made in isolation, however, which ensures that the inner
loop for those is fast and so that, when it comes to finishing
pulumi/lumi#147, we can easily split them out and make from the top.
2017-06-02 14:26:34 -07:00
joeduffy 769b0a4af0 Only run quick tests for make; add a make full target
The AWS tests take a while to run and it's easy to forget.  Further,
they are going to start taking quite a bit longer very soon.

So, this change introduces a `make full` target, which is what our
CI tests run.  But the ordinary `make` skips the long tests for faster
inner loop verification.  Over time, I'm sure we'll get far more
sophisticated with the split between inner vs. outer loop testing,
especially for performance, stress, and so on.
2017-06-02 10:30:57 -07:00
joeduffy 28c9c80b74 Enable Slack notifications for Travis CI 2017-05-25 07:36:17 -07:00
joeduffy 9aa1d8147b Remove master from the list of valid Go versions 2017-05-24 12:50:28 -07:00
joeduffy a1cf0c2a6c Update to Go 1.8.2 2017-05-24 12:50:28 -07:00
joeduffy d92ccc9cb5 Add -v flag to godep restore
This change adds the -v flag so that verbose output is emitted in the
CI/CD logs.  Since restore can take a little while, this at least lets
you monitor what it's doing and how long what it's doing is taking...
2017-05-24 12:50:28 -07:00
joeduffy efdfa42527 Manually install Godep in pre-install 2017-05-24 12:50:28 -07:00
joeduffy c18ae86cc8 Manually godep restore during install 2017-05-24 12:50:28 -07:00
joeduffy 88ea603551 Switch from Glide to Godep for dependency management
There isn't a pre-canned Glide distribution for amd64 linux, and the
integration with Glide and Travis isn't nearly as swanky as with Godep
(which essentially works out of the box).  Furthermore, Godep has caught
up with Go's vendoring changes since last time I looked, which was the
primary reason I ended up going with Glide in the first place.
2017-05-24 12:50:28 -07:00
joeduffy 9ed22eba6f Prep the $GOPATH/bin directory
The Glide installation script requires that the $GOPATH/bin directory
already exists, but because it is pre-install, it doesn't.  Make it so.
2017-05-24 12:50:28 -07:00
joeduffy f93f8f0510 Add a basic Travis CI/CD file
This is the beginning of pulumi/lumi#162.
2017-05-24 12:50:28 -07:00