Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

GAE + Github = can't get Push-to-Deploy to actually work

I'm trying to get Push-to-Deploy to work with GAE through GitHub set-up as the code repo source.

This is now Day 3 and I've run into several bugs like:

  • Creating a Release pipeline failing for no apparent reason

  • Getting Error 500 when I finally managed get the source pulled over to GAE

  • Changes in Github are propagated to GAE (they're visible under Source code -> Browse), but the Release routine isn't run and (understandably so) the app is not being served at the web address.

I tried creating several new projects and I exhibited various versions of the bugs above.

Here's where I'm at now:

I created a brand new project, setup Github as my repo, created a Release Pipeline and did a push afterwards (to Github) just to try and trigger the Deploy routine to no avail. The code tree is visible under Source code -> Browse, along with commit dates and so on, but the Release pipeline isn't run.

App ID is skillful-signer-695 and the platform of choice is php.

Any ideas?

Update:

Nearly 24 hours after I set-up the project and did a test commit to trigger the Release pipeline, it finally got executed! Its result is marked as 'SUCCESS.

Now if I try and hit the project's URL I get a:

Error 500 - The server encountered an error and could not complete your request.

Any help will be greatly appreciated!

Update 2:

I got some more info by looking at the logs:

A problem was encountered with the process that handled this request, causing it to exit. This is likely to cause a new process to be used for the next request to your application. (Error code 204)

Perhaps there's something wrong with my (quite simple) app.yaml?

application: skillful-signer-695
version: 1
runtime: php
api_version: 1
threadsafe: false

handlers:
# Serve images as static resources.
- url: /(.+\.(gif|png|jpg))$
  static_files: \1
  upload: .+\.(gif|png|jpg)$
  application_readable: true

# Serve php scripts.
- url: /.*
  script: index.php

It seems a lot of different people are experiencing the same thing and it has to do with app.yaml, but I can't figure out what I'm doing wrong... The above is pretty much pasted from the example in the docs.

like image 974
Lubomir Georgiev Avatar asked Sep 06 '14 12:09

Lubomir Georgiev


2 Answers

we were finally able to get this working - turns out there were some issues with the codebase for the website, which were leading to the 500 error (that's Code Igniter for you, I guess).

In addition, we had to add some lines to the app.yaml for css and fonts to show up. Here's what we ended up with:

application: skillful-signer-695
version: 1
runtime: php
api_version: 1
threadsafe: false

handlers:
- url: /assets/(.*\.(css|js|ttf))$
  static_files: assets/\1
  upload: assets/.*\.(css|js|ttf)$

# Serve images as static resources.
- url: /(.+\.(gif|png|jpg))$
  static_files: \1
  upload: .+\.(gif|png|jpg)$
  application_readable: true

# Serve php scripts.
- url: /.*
  script: index.php

Aside from the issues on our end, I believe we ran into several GAE bugs (inconsistent pull times from GitHub, Dashboard issues, incomplete docs, etc.) which are normal for Beta software, but nasty nonetheless. Thanks for the help!

p.s. We ran something else, which might save somebody some time digging around - if you're trying to use sockets (for example to send an email via SMTP from your support form hosted on GAE since the standard PHP mail command doesn't work) you'll find that Sockets are enabled only after you enter your billing info. They don't really charge you anything for light use, but I guess Google considers this a Premium feature.

All the best!

like image 91
Lubomir Georgiev Avatar answered Sep 19 '22 00:09

Lubomir Georgiev


I am having issues with Push 2 Not Deploy feature, because -at least for now- GAE does not resolve git submodules.

If you have submodules or ignoring essential files from git, your application will not work.

For example: I am sending e-mails from GAE and my login_data.py is ignored by git via .gitignore

If you use appcfg.py update --oauth . your login_data.py will be sent. Using push2deploy in a this situation will end up a big error like this:

Error: Server Error

The server encountered an error and could not complete your request.
Please try again in 30 seconds.
like image 35
guneysus Avatar answered Sep 20 '22 00:09

guneysus