本記事はGitHub Actions Advent Calendar 2021の12日目の記事です。
前回の記事で作ったSAP BTP のCloud Foundry環境にデプロイしたアプリをGitHubに保存して自動でBTP環境にデプロイ出来るようにします。
#前提条件
以下のブログと同じことをしていること
#GitHubActions
みんな大好きGitHubのワークフロー機能です。
CircleCIとかと同じような事ができます。
#今回の流れ
・コードをGithubにcommitする
・ワークフローを作る
・ワークフローの実行結果を確認する
#コードをGithubにcommitする
アプリのフォルダで以下コマンド実施
$ git config --global user.name "XXXX"
$ git config --global user.email "XXXX@hogehoge.com"
$ git init
$ git add .
$ git commit -m "Initial commit"
$ git remote add origin https://github.com/XXXX/XXXXXX.git
$ git push -u origin master
#ワークフローを作る
##GitHub画面からワークフロー新規作成
GitHubにアクセスして自分のリポジトリのActionsタブからNew workfowボタンを押す
テンプレートがいくつかあり、Node.jsからセットアップ始めます
今回使うCloud FoundryとかBPTはないですが、AzureとかAWSとか言語別・デプロイ先別にテンプレがあるのでいいですね。
以下の通りワークフローを作りました
name: Nodejs CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js
uses: actions/setup-node@v1
with:
node-version: 14
- name: Disable package-lock.json
run: npm config set package-lock false
- name: Install CF-CLI
run: |
curl -v -L -o cf-cli_amd64.deb 'https://cli.run.pivotal.io/stable?release=debian64&source=github'
sudo dpkg -i cf-cli_amd64.deb
- name: Install node
run: npm install;npm cache clean --force
- name: Login to SAP BTP
run: |
cf login -a https://api.cf.us10.hana.ondemand.com -u ${{ secrets.BTP_MAILADRESS }} -p ${{ secrets.BTP_PASSWORD }} -o bb8713batrial -s dev
cf push
##ワークフローの解説
少しワークフローの解説をします
おまじない的に初期設定のまま使ってる場所もあります
マスターブランチにPushしたときに動くようにします
他にもプルリクがあったときに動くようにしたり、対象ブランチを変えたり出来ます
on:
push:
branches: [ master ]
必要なものをインストールCF-CLIとかDependenciesとか
- name: Disable package-lock
run: npm config set package-lock false
- name: Install CF-CLI
run: |
curl -v -L -o cf-cli_amd64.deb 'https://cli.run.pivotal.io/stable?release=debian64&source=github'
sudo dpkg -i cf-cli_amd64.deb
- name: Install Dependencies
run: npm install
BTPにログインしてCF-CLIを使ってPush
組織(-o)とスペース(-s)の部分は必要に応じて変えてください。
- name: Login to SAP BTP
run: |
cf login -a https://api.cf.us10.hana.ondemand.com -u ${{ secrets.BTP_MAILADRESS }} -p ${{ secrets.BTP_PASSWORD }} -o bb8713batrial -s dev
cf push
##secretsの登録
メアドとかパスワードを平文で書くのはさすがになのでsecretsに登録します
Settings→secrets→New repository secretから値を登録します
トライアルのアカウント名とかはそのまま出してますね(笑)
#ワークフローの実行結果を確認する