GAE: No longer able to update my Gaelyk project due to appcfg losing support

131 views Asked by At

Recently tried to update my Gaelyk project (yes, it's old, but it works well and I still use it), but Google App Engine will no longer accept the update. The error message returned is "Deployments using appcfg are no longer supported. See https://cloud.google.com/appengine/docs/deprecations". The thing is, I never used appcfg to deploy my application; I used Gaelyk and Gradle. But obviously Gaelyk must have used appcfg under the covers.

I did download the replacement Google Cloud SDK, but this new tool is not similar at all to how Gaelyk and Gradle worked. Is there anything I can do to get Gaelyk to work anymore? Or is Gaelyk just dead and I need to rewrite my application (like in Node.js or something instead of Groovy).

2

There are 2 answers

0
seansand On BEST ANSWER

I can confirm that Serge's answer on the Gaelyk Groups site works; the same procedure that he figured out also worked for me. To summarize:

  1. Run gradlew appengineRun as run previously with Gaelyk.
  2. Copy all jar files inside the build\exploded-app\WEB-INF\lib folder into a \src\main\webapp\web-inf\lib folder (for me the new lib folder did not exist previously).
  3. To deploy, use the new required gcloud tool, and instead of running gradlew appengineUpdate (which fails now), instead run gcloud app deploy appengine-web.xml where that XML file can be found in your webapp/WEB-INF directory. I navigated to that directory to run the gcloud command, but you can use a relative path there if your working directory is elsewhere. (There are a number of optional flags associated with the gcloud app deploy command, but I didn't need any of them.)
  4. Serge needed to use these instructions to convert datastore-indexes.xml to index.yaml and run gcloud app deploy index.yaml, however, I didn't need to do this because I had no datastores.
0
vitooh On

This will be hard, however I will try to help you as possible. I think you may try to migrate it somehow to app.yaml configuration of GAE.

I am not sure what plugins are used in the project. From Gaelyk temple project I can see that it's using appengine-geb which, according to the documentation, behind the scenes, is using gradle-appengine-plugin (there is wrong link on this doc, but proper is bellow).

On the github of gradle-appengine-plugin I have found following.

  1. There is a note:

NOTE: All App Engine users are encouraged to transition to the new gradle plugin for their projects.

  1. And in FAQ part there is following information:

How do I deploy with gcloud?

If you're using gcloud to deploy your application, the newest version of app deploy > doesn't support war directories, you will need to provide it with an app.yaml OR you can use the appengineStage task to create a directory that is deployable in /build/staged-app

$ ./gradlew appengineStage

$ gcloud app deploy build/staged-app/app.yaml --project [app id] --version [some version]

NOTES:

  • You must explicitly define all config files your want to upload (cron.yaml, etc)
  • This does not work with EAR formatted projects.

I think the best option will be to migrate to new appenine plugin or if not possible try to implement is with gcloud app deploy command crating the config files manually (at least app.yaml). And for this migration I can provide you this document.

I hope you will manage somehow...