-
Notifications
You must be signed in to change notification settings - Fork 367
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
gae: Reimplement provider for Google App Engine #316
Conversation
ec0b1c6
to
85da2cc
Compare
Thanks for doing this, I am no Ruby expert either but I'll try to test it soon. |
@@ -54,7 +54,6 @@ group :gcs do | |||
end | |||
|
|||
group :gae do | |||
gem 'rubyzip' | |||
end |
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.
Justification for dropping SHA1 check: The zipped file comes with a CRC sum
and this sum is honored when decompressing with
The file is downloaded via a trusted authenticated channel (HTTP over TLS). Update: |
Could you test this with: deploy:
provider: gae
edge:
source: flowlo/dpl
branch: gae
⋮
on:
all_branches: true # if necessary |
Tested it, fails because it cannot install the Google Cloud SDK, right here. @BanzaiMan Could you please point me to docs of |
end | ||
end | ||
|
||
# Bootstrap the Google Cloud SDK. | ||
context.shell("CLOUDSDK_CORE_DISABLE_PROMPTS=1 #{Dir.home}/#{NAME}/bin/bootstrapping/install.py --usage-reporting=false --command-completion=false --path-update=false --additional-components=preview") |
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.
The real error is indicated here: https://travis-ci.org/coduno/api/jobs/77558698#L280 Both In between, |
entry.extract entry.name | ||
end | ||
Gem::Package::TarReader.new(Zlib::GzipReader.open(open(BASE + NAME + EXT, "rb"))).each do |entry| | ||
target = File.join(Dir.home, entry.full_name) |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
@FlowLo So bizarre! If you want to inject various debug output (to determine when |
@BanzaiMan I just threw in some I'm in UTC+02, will get some sleep now. |
gae: Reimplement provider for Google App Engine
I think I tracked this down to an I/O race condition of sorts. As currently implemented in the PR, the control is passed on to the next method before SDK bootstrapping is complete. This means that, by the time A clean way I've found is to use |
Instead of Gem::Package::TarReader and Zlib::GzipReader, we use 'wget' and 'tar' to download & extract SDK archive inside Open3.popen3. Similarly, we use Open3.popen3 to ensure that SDK bootstrapping is complete before invoking `gcloud`. See #316 (comment) for complete details.
See https://github.com/travis-ci/dpl/tree/ha-test-pr-316. Here is an example build: https://travis-ci.org/BanzaiMan/travis_production_test/builds/77610416. The deployment fails because the app is not set up for GAE, but you can see that |
66ec8f3
to
57c588a
Compare
a1faf30
to
cbd6198
Compare
I opted for Provider working smoothly: If you see stuff like
it's the application's fault 😄 |
e248da0
to
c778292
Compare
This now uses Google's Cloud SDK
Generate an SSH key so gcloud will not hang asking for a password upon key pair generation.
gae: Reimplement provider for Google App Engine
This now uses Google's Cloud SDK towards a resolution for #94
I see that tests are missing, but I'd rather like some opinion on the options and install routine beforehand.
And please bear with me, these are the first lines of Ruby in my life.
CC @BanzaiMan @waprin @ajessup @TRII