LoginSignup
3
0

More than 1 year has passed since last update.

SAP BTPのCloud FoundryにGithub Actionsを使って自動デプロイする

Last updated at Posted at 2021-12-15

本記事は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ボタンを押す

image.png

テンプレートがいくつかあり、Node.jsからセットアップ始めます
今回使うCloud FoundryとかBPTはないですが、AzureとかAWSとか言語別・デプロイ先別にテンプレがあるのでいいですね。
image.png

以下の通りワークフローを作りました

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に登録します
SettingssecretsNew repository secretから値を登録します

トライアルのアカウント名とかはそのまま出してますね(笑)

image.png

ワークフローの実行結果を確認する

Actionsタブからワークフローが実行できていることを確認できます
image.png

BTPのスペースのイベントを見ると指定の時間にアプリがcreateされていることを確認できます。
image.png

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0