# How can I set secrets.yml for test environment for CircleCI?

**URL:** <https://discuss.circleci.com/t/how-can-i-set-secrets-yml-for-test-environment-for-circleci/2304>\
**Category:** Build Environment\
**Tags:** rails\
**Created:** [February 24, 2016, 11:30am UTC](https://discuss.circleci.com/t/how-can-i-set-secrets-yml-for-test-environment-for-circleci/2304 "2016-02-24T11:30:41Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![simmibadhan](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/simmibadhan/32/1742_2.png) [@simmibadhan](https://discuss.circleci.com/u/simmibadhan)\
**Post date:** [February 24, 2016, 11:30am UTC](https://discuss.circleci.com/t/how-can-i-set-secrets-yml-for-test-environment-for-circleci/2304/1 "2016-02-24T11:30:41Z")

</div>

I’m using Rspec with Ruby 2.2.2 and Rails 4.2. My tests pass on my local system. But these fail on CircleCI with error:  
ArgumentError: Missing required arguments: aws\_access\_key\_id, aws\_secret\_access\_key

My secrets.yml is not on git. How can I set secrets.yml for test environment for CircleCI?

---

<div class="post-metadata">

**Author:** ![simmibadhan](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/simmibadhan/32/1742_2.png) [@simmibadhan](https://discuss.circleci.com/u/simmibadhan)\
**Post date:** [February 24, 2016, 1:23pm UTC](https://discuss.circleci.com/t/how-can-i-set-secrets-yml-for-test-environment-for-circleci/2304/2 "2016-02-24T13:23:17Z")

</div>

This solution worked out for me:

1. Create config/secrets.ci.yml with test environment variables.
2. Add circle.yml to the root directory:

circle.yml

```
machine:
  ruby:
    version:
      2.2.2

dependencies:
  override:
    - mv config/secrets.ci.yml config/secrets.yml
```

---

<div class="post-metadata">

**Author:** ![FelicianoTech](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/felicianotech/32/21348_2.png) [@FelicianoTech](https://discuss.circleci.com/u/FelicianoTech)\
**Post date:** [February 25, 2016, 2:21am UTC](https://discuss.circleci.com/t/how-can-i-set-secrets-yml-for-test-environment-for-circleci/2304/3 "2016-02-25T02:21:44Z")

</div>

Another option could be using [CircleCI Environment Variables](https://circleci.com/docs/environment-variables#setting-environment-variables-for-all-commands-without-adding-them-to-git). This would allow you to load in secret info without it being in your repository or file system at all.

Not to mention that the AWS CLI will automatically [read those variables from the environment](http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-environment) if they are present.

---

<div class="post-metadata">

**Author:** ![Startouf](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/startouf/32/13492_2.png) [@Startouf](https://discuss.circleci.com/u/Startouf)\
**Post date:** [April 5, 2017, 10:17pm UTC](https://discuss.circleci.com/t/how-can-i-set-secrets-yml-for-test-environment-for-circleci/2304/4 "2017-04-05T22:17:37Z")

</div>

I have my secrets on an Amazon bucket, and I use the AWS credentials from circleCI to download it before the test starts

```
test:
  pre:
    - >
      aws s3 cp
      s3://my-config-bucket/test/rails/secrets.yml ~/MyApp/config/
      --region eu-central-1
```

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/circleci/original/3X/5/1/511608acda8e85906e15909b57bd0a46c1dbe291.png) [@system](https://discuss.circleci.com/u/system)\
**Post date:** [June 18, 2018, 11:38am UTC](https://discuss.circleci.com/t/how-can-i-set-secrets-yml-for-test-environment-for-circleci/2304/5 "2018-06-18T11:38:01Z")

</div>


