メインコンテンツへスキップ

Github Actions を使用して Google Cloud バケットを自動的に更新する

·1000 文字·
目次
Google Cloud を使用してブログをホストする - この記事は連載の一部です
パート 3: この記事

最近はパソコンが無いのでブログの更新が非常に面倒で寝室のパソコンにssh接続してリモートデスクトップかvimで編集してhugo deployする必要があります。そこで、より良い解決策を考え出すことにしました。

コードサーバーを使用するだけで、マークダウンを編集するには Android タブレットで十分です。したがって、問題はhugo --minify && hugo deployをどのように実行するかです。

このコマンドを実行するには、Linux 環境と最新バージョンの Hugo および google-cloud-cli がインストールされている必要があります。私はGithub Actionsに注目しました。

Github Actions の作成
#

このプロジェクトのコード ウェアハウス Web ページに入り、Actionsを選択して、新しい workflow を作成します。

name: hugo auto deploy

# when action
on:
  push:
    branches: [ main ]

# env prepare
jobs:
  setup-deploy:
    name: Setup and Deploy
    runs-on: ubuntu-latest
    permissions:
      contents: 'read'
      id-token: 'write'
    steps:

# checkout
    - name: Checkout
      uses: actions/checkout@v4
      with:
        submodules: true
      
    - name: "google-cloud-login"
      uses: 'google-github-actions/auth@v2'
      with:
        credentials_json: '${{ secrets.GOOGLE_CREDENTIALS }}'

    - name: "setup cloud sdk"
      uses: 'google-github-actions/setup-gcloud@v2'

# hugo env
# hugo ready & build
    - name: Setup Hugo
      uses: peaceiris/actions-hugo@v3

# hugo deploy
    - run: hugo --minify
    - run: hugo deploy

その後、一部のコンテンツを変更してgit pushを実行し、GitHub Repository のActionsページでログを確認します。

Google Cloud を構成
#

Actions を直接トリガーした場合は、予想どおりエラーがログに報告されます。それでは、エラーを段階的に修正してみましょう。

Google Cloud サービスキーを生成
#

Google Cloud コンソールを開き、IAMと管理に移動し、サービス アカウントを選択して、サービス アカウントを作成

サービス アカウント名を入力し、github-actionsを入力すると、サービス アカウント ID が自動的に生成されます。作成して続行をクリックします。作成後、作成したばかりのアカウントを選択し、鍵を管理を選択します。
鍵を追加を選択し、新しい鍵を作成し、JSON 形式を選択します。その後、JSON ファイルが取得されますので、必ず保存してください。

アクセス許可
#

権限ページでアクセス権を付与をクリックし、サービス アカウントを作成に作成したばかりのアカウントを入力し、「ストレージオブジェクト管理者」権限を付与します。

Github Actions Secrets を構成
#

Github に戻り、このRepositoryのSettingsページに、Secrets and variablesを選択し,Actionsを選択し、New repository secretsをクリック、NameGOOGLE_CREDENTIALSを入力します、SecretはGoogle Cloudに取得したJSONの全てのコンテンツ。

Actions を再試行
#

成功しました。

Google Cloud を使用してブログをホストする - この記事は連載の一部です
パート 3: この記事