GitHub Actions : SSHの接続方法

対象者

GitActionsでSSH接続する必要がある人。

ex. 例えば、node.jsのpackage.json内でprivate repositoryからnpm install or yarn installしたい時。

SSH Keyを作成

ssh-keygen -t rsa -f git_actions

秘密鍵の設定

pbcopy < git_actions

上記のコマンドで秘密鍵クリップボードにコピーする

https://github.com/your-name/sample-app/settings/secrets/actions

次に上記のURLから【Actions secrets】でPRIVATE_KEYを設定する

設定方法は、上記のスクショを参考に

公開鍵の設定

pbcopy < git_action.pub

上記のコマンドで公開鍵をクリップボードにコピーする

https://github.com/settings/keys

次に上記のURLから公開鍵を登録

GitActionsの設定

今回はcommitをpushした時に、CIを走らせるgit actionを作成

name: sample

on: pull_request

jobs:
  sample:
    runs-on: ubuntu-latest
    timeout-minutes: 30

    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0

      - name: Use Node.js
        uses: actions/setup-node@v2
        with:
          node-version: 14.x
          registry-url: 'https://npm.pkg.github.com'

      - name: Run setup ssh
        env:
          PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
        run: |
          mkdir -p ~/.ssh
          echo "$PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa
          chmod 700 ~/.ssh/id_rsa
          eval $(ssh-agent -s)
          ssh-add ~/.ssh/id_rsa
          ssh-keyscan -H github.com >> ~/.ssh/known_hosts

      - name: Run install
        run: yarn install

終わりに

上記まで設定が完了したら実際にpushしてみてgit actionyarn installが問題なく出来ることを確認してください。(出来ていない場合は何か設定ミスが発生しているはず)