Travis CI -> Herokuデプロイエラー(Message: Invalid credentials provided.)

ローカルMac --コミット--> GitHub --テスト--> Travis CI --デプロイ--> Heroku

という連携で、Travis CIからHerokuへのデプロイが失敗。

エラーメッセージ

Preparing deploy

No stash entries found.
API request failed.
Message: Invalid credentials provided.
Reference: 
failed to deploy

.travis.ymlに仕込んだAPI KEYがおかしいとのこと。以下の「secure」の部分。

deploy:
  provider: heroku
  api_key:
    secure: DCzGKlonMSOyRqiXGZUl+/itdc9mn4nZjS2RP0T/K0fvv5cKFwCLFhKyp4m8WyTedSJrzhJE21ciZ3sMPVfLJ4syXfrO1Gs30iLYITOz2rVnPr5WYexc5AfEtNYh4nlPeWcrwvQtyxW6ZazelR5zODpYXUzIZ3Wcb4+F4EhV//VWrVsPyQZolN/Go1BppNdSwhJtRoPAX3vjWSuXwS8DXDim3c3+akwPGPdRwO/8LxuwVmlmTNvIgphsxuwIjoUJ17GUUHgTdfQ5P5pbAitlN2PkYzDcDjlu+0pJBQ0dSZugaq0IfSWX/y5DDx235WdHsLDy38Yg46Lly09t9t3Kn7Vg56ctW+dxpVMbFI71UEJECSsiFKI9sQ5W9q9Ho82lHG8nzqRhw9L5n1+98ePP5JkvQpOwJwSRPGBu+4i7tUNZJqRzwqqpAnTbiifJyBGRHcRMaJ0agqdjn6IGNXnmdyZEY9qvmCrRN+sn+2RMBGZVYFRbREPy4rGEHYOhxNUb2HSXgzVzm8IQp6dw8J9a2Q2rFc+z9B5b318XADRm96jP4mWcguf+qk+rt2iNfHI/s+kLQhloimakJCx8f5zcSWwR5coUFxDP/XX5iV8KlsDsd2yW5ZxDXl2v87uN3P1gCuo1oIQK0kvyPm/i+gf1nO+secT+ettkl1lNTJbSddc=

ターミナルで暗号化されたAPI KEYを再発行してみる。

$ travis encrypt $(heroku auth:token) --add deploy.api_key

オプションは、デフォルトで travis-ci.org(フリー版) が指定され、 --pro をつけると travis-ci.com(有料版) になる。自分は travis-ci.org(フリー版) を使っているため、何も指定せず実行。

更新されたAPI KEYになった.travis.ymlを再度GitHubにコミットしてから、Travis CIのログを見てみる。

Preparing deploy

Cleaning up git repository with `git stash --all`. If you need build artifacts for deployment, set `deploy.skip_cleanup: true`. See https://docs.travis-ci.com/user/deployment#Uploading-Files-and-skip_cleanup.
Saved working directory and index state WIP on (no branch): 9811fc8 chore: add Heroku Encrypted API KEY
-----> Ruby app detected
-----> Compiling Ruby/Rails
-----> Using Ruby version: ruby-2.4.1
-----> Installing dependencies using bundler 2.0.1
       Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment

成功。

参考サイト