Skip to content

TakuKobayashi/github-actions-examples

Repository files navigation

Github Actionsで自動デプロイしてみる

やってみる開発環境

目的

Github Actionsが使用できるようになったのでGithub上でのCI/CDの検証を行う。 CI/CDの検証を行って、うまく行く方法が確立されたら、他のプロジェクトにも適用する。

やりたいこと

  • React Web: ReactでWeb frontendの開発を行い、masterにpushされたら自動的にbuildする。Buildが完了したら Github PagesにDeployして内容が反映されること
  • Serverless Framework: Serverless FrameworkよりBackendの開発を行いWeb APIを作成。masterにpushされたら自動的にdeployコマンドを実行し、AWS Lambda + ApiGatewayの環境にdeployして反映されること
  • Firebase: Firebase Hosting, Firebase Cloud Functions にて、それぞれfrontend/backendの開発を行う。masterにpushされたら自動的に firebase cli のdeployコマンドを実行し、反映されること
  • Android: Androidアプリを開発し、pushしたらbuildし、完了したらApkファイルをダウンロードすることができること。またRelease Keyを作成し、Google Play Storeにアップロードすること
  • iOS: iOSアプリを開発し、pushしたらbuildし、完了したらipaファイルをダウンロードすることができること。また、ipaファイルをApp Storeにアップロードできるようにもすること
  • Unity: Unityで開発を進める。完了したら、動画の抽出(映像作品)、Androidアプリのビルド、iOSアプリのビルドができること。また、Storeへのアップロードも可能であれば実施したい。

Tips

Github Actionsのはじめ方

GithubにてGithub Actionsを有効にして、 .github/workflows/フォーマットしたymlファイル を設置する事でGithub Actionsが実行可能になります。(現在まだオープンβ盤なの利用するには申請が必要になります。こちらから申し込みを行ってください。)

GithubActions  Activate

なお、今回作成したymlファイルの設定内容の詳細についてはそれぞれこちらを参照してください。

Github Actionsにて非公開にしたい変数を登録して使用する

API Keyや環境変数などオープンにしたくない情報は Secrets に変数を登録することで、公開されることなく利用することができます。 以下のようにリポジトリから SettingsSecrets と選択し、Add a new Secrets と選択することで設定することができます。

GithubSettingsSecrets.png

※ 一度設定したSecretsは内容を確認する事はできません。またGithub Actionsの中で出力しようとしても値は表示されませんので、設定には気をつけてください。

設定した, Secrets は以下のように env: の項目に設定した Key名 を代入する事でコマンドの中などで使用されます。

- name: serverless package and deploy
  env:
    AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
    AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
  run: |
    ./node_modules/serverless/bin/serverless config credentials --provider aws --key ${AWS_ACCESS_KEY_ID} --secret ${AWS_SECRET_ACCESS_KEY}

上記の内容はServerless FrameworkにてAWS環境にDeployするためにAWSへのAPIアクセスキーを設定している内容になります。 具体的な実装例は こちら になります。

Github PagesへのDeploy方法

  • Settings よりGithub Pagesを有効にする GithubSettings

GithubPagesSettings

  • 公開鍵と秘密鍵のペアを生成する(以下コマンドを実行する)
ssh-keygen -t rsa -b 4096 -C "$(git config user.email)" -f gh-pages -N ""
  • 作成した公開鍵(gh-pages.pub)の中身を Deploy Keys に登録する GithubSettingsDeployKey
  • 作成した秘密鍵(gh-pages)の中身を Secrets に登録する GithubSettingsSecrets
  • Workflowのymlの中のstepsの項目に以下の内容を適用する
    - name: deploy
      uses: peaceiris/actions-gh-pages@v2.5.0
      env:
        ACTIONS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }}
        PUBLISH_BRANCH: gh-pages
        PUBLISH_DIR: frontend/build

これで設定完了なので、特定のブランチにpushしたら、自動的にGithub Pagesにデプロイしてくれるようになります。

設定したymlについての解説

詳細についてはこちらを参照してください。

  • Github Pagesへのデプロイはactions-gh-pagesというライブラリを使用しています。このライブラリを使用しています。ライブラリを使用する場合は step の項目のところで、uses: の項目を指定すると使用できます。この場合、run: 項目や working-directory:項目を使用することができません。
  • secrets.ACTIONS_DEPLOY_KEYは上記で登録したSecret の変数名の値が適用されます。Github Actionsの中で使用したい場合は env: 項目内で変数に指定することで使用することができます。(ライブラリの場合は指定があります)
  • PUBLISH_BRANCHの項目でGithub Pagesにデプロイしたいブランチを指定することができます。このとき gh-pages を指定していますが存在しなければ、Workflowを実行している中で勝手に作成してくれます。しかし、最初に作成する時はうまくdeployできないこともあるので、あらかじめ作っておくといいかもしれません。また gh-pages ブランチは Github Pagesの公開用のブランチとして指定することもできます。(うまくいかないかもしれないので、指定しておいたほうがいいと思います)

AndroidアプリのBuild, Google Play Storeへの反映方法

参考

疑問点(課題)

  • GithubのWeb Page上からGithub Actionsを実行するやり方(手動実行のやり方)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages