1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GitHub ActionsでCloud Foundry(IBM Cloud)のデプロイを行う

Posted at

前に書いたようにCloud Foundryのデプロイが遅すぎるのでGitHub ActionsでCIデプロイをすることにしました。

Cloud Foundry(IBM Cloud)にDiscord BOTをデプロイしようとした際にハマったメモ

ibmcloud CLIをインストールしてpushコマンドまで

cf pushまでの流れをまとめるとこんな感じです。

IBM CloudでNode.jsアプリケーションをデプロイするまでの流れ

  • ibmcloudとcfプラグインのインストール
$ curl -fsSL https://clis.cloud.ibm.com/install/linux | sh
$ ibmcloud cf install
  • ログインとpush
$ ibmcloud login -u USERNAME -p PASSWORD -r リージョン
$ ibmcloud target --cf
$ ibmcloud cf push

ibmcloud login -ssoとするとブラウザ経由でワンタイムパスを入れたり、リージョンをコマンド入力待ちになるためCI利用はしにくいですが、-u / -p / -rなどを指定して実行することでCIでも利用できます。

GitHub Actionsのログをマスクする

パスワードなどはシークレットに登録すれば良いですが、ログにIDなどが表示されます。
ログを一部表示にします。

    - name: add-mask
      run: |
        echo "::add-mask::${{ secrets.IBMCLOUD_TEST }}"
        echo "::add-mask::${{ secrets.IBMCLOUD_USER_ID }}"
        echo "::add-mask::${{ secrets.IBMCLOUD_USER_PASS }}"
        echo "::add-mask::${{ secrets.IBMCLOUD_USER_ACCOUNT_ID }}"
        echo "::add-mask::${{ secrets.IBMCLOUD_USER_NAME }}"

GitHub Actionsのログをマスクするメモの記事にまとめました。

yml全体

node.js.yml
name: Node.js CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:

    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [15.x]
        # See supported Node.js release schedule at https://nodejs.org/en/about/releases/

    steps:
    - uses: actions/checkout@v2

    - name: add-mask
      run: |
        echo "::add-mask::${{ secrets.IBMCLOUD_TEST }}"
        echo "::add-mask::${{ secrets.IBMCLOUD_USER_ID }}"
        echo "::add-mask::${{ secrets.IBMCLOUD_USER_PASS }}"
        echo "::add-mask::${{ secrets.IBMCLOUD_USER_ACCOUNT_ID }}"
        echo "::add-mask::${{ secrets.IBMCLOUD_USER_NAME }}"        

    - name: ibmcloud cli install
      run: |
        curl -fsSL https://clis.cloud.ibm.com/install/linux | sh
        ibmcloud cf install
            
    - name: ibmclound login
      run: ibmcloud login -u ${{ secrets.IBMCLOUD_USER_ID }} -p ${{ secrets.IBMCLOUD_USER_PASS }} -r us-south

    - name: ibmclound target --cf
      run: ibmcloud target --cf
    
    - name: ibmclound cf push
      run: ibmcloud cf push

    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v2
      with:
        node-version: ${{ matrix.node-version }}
    - run: npm install && npm start

これでGitHubにPush後にCI側でIBM Cloudにデプロイしてくれるようになりました。

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?