Compile App Engine application in Travis

馋奶兔 提交于 2020-01-06 04:23:09

问题


Is there any way to run the compiler on an App Engine application written in Go without continue to serve the application with the development server and instead get an exit code?

Because I want to add a check in my automated tests in Travis that the application actually compiles.

To clarify: I have access to the App Engine SDK / Development Server in Travis, but I dont want to run goapp serve since it never exits.


回答1:


Without actually implementing test, your solution looks pretty hacky. Why not use goapp build? Here's my .travis.yml:

language: go
go:
- 1.2.1

# Grab newest version and suck down
install:
    - export FILE=go_appengine_sdk_linux_amd64-$(curl https://appengine.google.com/api/updatecheck | grep release | grep -o '[0-9\.]*').zip
    - curl -O https://storage.googleapis.com/appengine-sdks/featured/$FILE
    - unzip -q $FILE

# Run build and tests
script:
    - ./go_appengine/goapp test ./tests; # If you are testing
    - ./go_appengine/goapp build ./packagedir; # Wherever you keep your stuff

For reference on tests or just to see a project that builds

Edit:

It has been awhile, but I noticed recently that some of my builds randomly break. It is infuriating and I have occasionally hardcoded SDK values to overcome this. No more. Here's a very hacky implementation of grabbing the first featured (and thus hosted as /updatecheck fails to always return a hosted version) of the SDK desired:

export FILE=$(curl https://storage.googleapis.com/appengine-sdks/ | grep -o 'featured/go_appengine_sdk_linux_amd64-[^\<]*' | head -1)

For just the file:

export FILE=$(curl https://storage.googleapis.com/appengine-sdks/ | grep -oP '(?<=featured/)go_appengine_sdk_linux_amd64-[^\<]*' | head -1)



回答2:


I solved this by adding an empty Unit test at the entry point of the application (main_test.go). This unit test will force the whole application to compile.

Then I execute all unit tests by putting goapp test ./... in the script section.



来源:https://stackoverflow.com/questions/24614599/compile-app-engine-application-in-travis

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!