Githubページの上でExdocsを発表する方法


Githubページでは、静的ファイルを発行することができますが、これらを生成できません.プライベートパッケージのExdocsを生成したり、角度のようなWebフレームワークを使用して静的サイトを生成する場合は問題です.
Githubページに公開されている静的なファイルを持つ唯一の方法は、どちらかというと/docs または、ブランチという名前のgh-pages . githubアクションを使ってこれをしましょう.

SSHキー
Generating a new SSH key GitHubアクションからGitリポジトリに変更をプッシュすることができます.我々はこれをExdocsを生成し、プッシュするたびにそれらを押して使用しますmaster .
ssh-keygen -t ed25519 -C "gh-pages"

展開キー

A deploy key is an SSH key that grants access to a single repository. GitHub attaches the public part of the key directly to your repository instead of a personal user account, and the private part of the key remains on your server.


のキーを展開キーに追加する/settings/keys .
Deploy Key

行動秘密

Secrets are environment variables that are encrypted. Anyone with
collaborator access to this repository can use these secrets for Actions.


プライベートキーをリポジトリの秘密に追加/settings/secrets/actions .


ギタブアクション
この設定を使用すると、GitHubアクションがリポジトリを変更する機能を持っています.天気によっては、あなたは/docs またはgh-pages , 手順は非常に似ています.

Githubアクションを使用して、これらの手順を実行します.
  • Exdocsを生成する/doc
  • Gitリポジトリを初期化する/doc
  • この新しいローカルレポをリポジトリにリンク
  • 強制的にディレクトリ全体をプッシュgh-pages
  • 以下にgithub actionファイルの例を示します.
    name: GitHub Pages
    
    on:
      push:
        branches: [master]
    
    jobs:
      build:
        name: Push to gh-pages
        runs-on: ubuntu-latest
    
        steps:
          - uses: actions/checkout@v2
          - name: Set up Elixir
            uses: erlef/setup-beam@988e02bfe678367a02564f65ca2e37726dc0268f
            with:
              elixir-version: "1.13.3" # Define the elixir version [required]
              otp-version: "24" # Define the OTP version [required]
          - name: Restore dependencies cache
            uses: actions/cache@v2
            with:
              path: deps
              key: ${{ runner.os }}-mix-${{ hashFiles('**/mix.lock') }}
              restore-keys: ${{ runner.os }}-mix-
          - name: Install dependencies
            run: mix deps.get
    
          - name: Force push to gh-pages
            run: |
              # Generate docs
              mix docs
    
              # Setup
              cd doc
              git init --initial-branch gh-pages
              git remote add origin $ORIGIN
              git config user.name "$NAME"
              git config user.email "$EMAIL"
              eval `ssh-agent -s`
              ssh-add - <<< '${{ secrets.GH_PAGES_SSH }}'
    
              # Push
              git add .
              git commit -m "mix docs"
              git push --set-upstream origin gh-pages -f
    
    このファイルでは、変数$NAME , $EMAIL and $ORIGIN .
    一旦それが始まるならばmaster , githubページが自動的に展開されます!