doupao6698
2014-07-07 15:46
浏览 16
已采纳

在Travis中编译App Engine应用程序

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.

图片转代码服务由CSDN问答提供 功能建议

是否有任何方法可以在用Go语言编写的App Engine应用程序上运行编译器,而无需继续通过 开发服务器,而是获取退出代码?

因为我想在Travis的自动化测试中添加一个应用程序实际编译的检查。

澄清一下:我可以访问Travis中的App Engine SDK /开发服务器,但是我不想运行goapp serve,因为它永远不会退出。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dqcuq4138 2014-07-20 04:47
    已采纳

    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)
    
    评论
    解决 无用
    打赏 举报
  • 查看更多回答(1条)

相关推荐 更多相似问题