Rails - не могу заставить Travis CI захватить мои учетные данные S3

Я полностью застрял в попытке заставить AWS S3 работать вместе с Трэвисом с помощью Figaro.

Это все прекрасно работает в режиме разработки:

picture.rb

class Picture < ApplicationRecord
  acts_as_list
  belongs_to :imageable, polymorphic: true

  has_attached_file :image,
    :storage    => :s3,
    :bucket     => Figaro.env.s3_bucket,
    :s3_region  => 'eu-west-1',
    :s3_credentials => {
      :access_key_id      => Figaro.env.aws_access_key_id,
      :secret_access_key  => Figaro.env.aws_secret_access_key
    }

  do_not_validate_attachment_file_type :image
end

application.yml

aws_access_key_id: 'xxx'
aws_secret_access_key: 'xxx'
aws_region: 'eu-west-1'

development:
  s3_bucket: 'company-name-dev'

production:
  s3_bucket: 'company-name-prod'

Очевидно, Трэвису нужен доступ к этим ключам:

.travis.yml

language: ruby
before_install:
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
rvm:
- 2.4.0
bundler_args: "--jobs=2"
script:
- bundle exec rake db:setup
- bundle exec rake spec
cache: bundler
services:
- postgresql
addons:
  postgresql: '9.4'
deploy:
  provider: heroku
  api_key:
    secure: verlongherokukey
  app: imkerij
  on:
    repo: MyGitHub/MyRepoName
  skip_cleanup: true
env:
  matrix:
  - s3_bucket='company-name-dev'
  global:
  - secure: verylongkey
  - secure: anotherverylongkey

Я продолжаю получать сообщения об отсутствующих учетных данных AWS или ошибки Figaro MissingKeys в Travis.

Figaro::MissingKeys: Missing required configuration keys: ["aws_access_key_id", "aws_secret_access_key"]

Что произошло только после добавления:

Figaro.require_keys("aws_access_key_id", "aws_secret_access_key")

До этого у меня постоянно отсутствовали учетные данные AWS или что-то в этом роде.

Похоже, ключи не проходят. Также не при использовании формы ENV их записи. Тогда даже в разработке вещи больше не работают.

Любая помощь, безусловно, ценится. Застрял меня на несколько дней. Также другое решение, просто используя секреты, я был бы признателен.

1 ответ

Я решил это, зайдя в настройки своего проекта Travis CI, где я мог добавить ключи. Сработало сразу.

С использованием travis encrypt функции для моего.yml во всех отношениях не было.

Другие вопросы по тегам