GitHub Actions は GitHub が提供する継続的インテグレーションサービスです。チュートリアルは GitHub Actions 入門チュートリアル または 公式ドキュメント を参照してください。
私たちは、リポジトリ A でワークフローをトリガーし、リポジトリ A のすべてまたは一部のコードを別のリポジトリ B にコミット(デプロイ)したいと考えるかもしれません。この場合、状況に応じて考慮する必要があります。
リポジトリ A#
リポジトリ A が公開か非公開かにかかわらず、全体のワークフローには影響しません。ワークフローを作成する際、GitHub は自動的に秘密鍵を作成し、リポジトリへのアクセスをサポートします。秘密鍵は ${{ secrets.GITHUB_TOKEN }}
を介してコンテキストから取得されます(例)。秘密鍵の権限は必要に応じて調整できます。
リポジトリ B#
公開#
個人ブログプロジェクトでは、ブログページを GitHub Pages にデプロイする必要があるかもしれません。この場合、私的なリポジトリ A でブログのソースコードを管理し、A リポジトリでワークフローを定義してソースコードをコンパイルおよびデプロイできます。このとき、リポジトリ B は公開リポジトリです。
# to do
このタイプは、以下の private セクションで紹介する方法にも適用されます。
非公開#
時には、非公開のリポジトリ B にコードをコミットする必要があるかもしれません。
この場合、デプロイキーを導入し、SSH プロトコルを介してコミットする必要があります。
まず、SSH キーを生成する必要があります。例えば:
ssh-keygen -t ed25519
リポジトリ A > 設定 > 秘密 > 新しいリポジトリの秘密
に公開鍵を設定します。
リポジトリ B > 設定 > デプロイキー > デプロイキーを追加
に秘密鍵を設定します。
次に、リポジトリ A で GitHub Actions のワークフローを次のように構築します。
name: test
on:
push:
branches:
- 'main'
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: コードをチェックアウト
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Git初期化
run: |
git config user.name "${{ github.actor }}"
git config user.email "${{ github.actor_id }}@users.noreply.github.com"
### または、コミットユーザーとしてGitHub Actionsボットを使用できます
# git config --local user.email "action@github.com"
# git config --local user.name "GitHub Action"
- name: SSHキーを追加
uses: webfactory/ssh-agent@v0.5.4
with:
ssh-private-key: ${{ secrets.DEPLOY_SSH_KEY }}
- name: リポジトリにプッシュ
run: |
git remote add target "git@github.com:${{ your repo path }}.git"
git checkout --orphan temp
git add --all
git commit --allow-empty -m "your commit message"
git push target temp:main --force
GitHub でテストをコミットするだけです。
参考: https://stackoverflow.com/questions/68590575/github-actions-remote-repo-issues