如何配置Travis-CI以使用rails应用程序的正确时区?

ace*_*des 14 ruby-on-rails travis-ci

在我的application.rb中,我有

config.time_zone = "Pacific Time (US & Canada)"
Run Code Online (Sandbox Code Playgroud)

这在开发/测试和生产服务器中正常工作.但是,当我推送到Travis-CI时,它似乎已本地化为UTC,例如输出I18n.l Time.now.

Travis-CI ruby​​/rails环境有什么不同之处吗?

aru*_*zca 49

这对我有用:

before_install:
- export TZ=Australia/Canberra
Run Code Online (Sandbox Code Playgroud)

要检查是否正确,您可以输出日期:

- date
Run Code Online (Sandbox Code Playgroud)

  • 这对于禁用了sudo等的"新"docker实例特别有用. (3认同)
  • 请参阅此处获取时区标识符列表:http://en.wikipedia.org/wiki/List_of_tz_database_time_zones (3认同)

小智 11

我完成设置时区的方法是在travis.yml的before_script部分

它们为您提供对运行项目的VM的root访问权限,因此您只需设置ruby使用的OS时区:

    before_script:
      - echo 'Canada/Pacific' | sudo tee /etc/timezone
      - sudo dpkg-reconfigure --frontend noninteractive tzdata
Run Code Online (Sandbox Code Playgroud)

如果您愿意,还可以通过添加以下内容强制进行更新:

      - sudo ntpdate ntp.ubuntu.com
Run Code Online (Sandbox Code Playgroud)