GCPの認証情報を作成する

まず↓を参考にGoogle Driveにコマンドでアクセスできるようにする

https://kajindowsxp.com/skicka/

できたら以下コマンドの結果と、クライアントIDクライアントシークレットをメモしておく

cat ~/.skicka.tokencache.json

GCPの認証情報をGitHubリポジトリに登録する

リポジトリにアクセスし、
Settings -> Secrets and variables -> Actions -> New repository secret
の順にクリック。

入力フォームが出現するので、NameとSecretにそれぞれ先程メモした内容を登録する(1回ずつ計3回)。

yamlファイル作成

リポジトリ直下に.github/workflows/build-and-upload-tex.yamlというファイルを作成する

.github
`-- workflows
    `-- build-and-upload-tex.yaml
tex-files
`-- mathematics.tex

ファイルの中身は以下のようにする。6, 7行目の
TARGET_TEX_FILE はコンパイルしたいTeXファイルのパス
GOOGLE_DRIVE_DESTINATION はGoogle Driveの保存先のパス
に各自書き換える。

name: Build LaTeX files and upload to Google Drive

on: [push]

env:
  TARGET_TEX_FILE: tex-files/mathematics.tex
  GOOGLE_DRIVE_DESTINATION: /hoge

jobs:
  build-and-upload:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2

    - name: Build LaTeX files
      run: |
        TARGET_DIR=$(pwd)/$(dirname $TARGET_TEX_FILE)
        TARGET_FILE=$(basename $TARGET_TEX_FILE)
        docker run -v $TARGET_DIR/:/root/ kakerukitahara/tex ptex2pdf -l $TARGET_FILE
        docker run -v $TARGET_DIR/:/root/ kakerukitahara/tex ptex2pdf -l $TARGET_FILE
        mkdir upload
        mv $TARGET_DIR/*pdf ./upload

    - name: Upload to Google Drive
      uses: satackey/action-google-drive@v1
      with:
        skicka-tokencache-json: ${{ secrets.SKICKA_TOKENCACHE_JSON }}
        google-client-id: ${{ secrets.GOOGLE_CLIENT_ID }}
        google-client-secret: ${{ secrets.GOOGLE_CLIENT_SECRET }}
        upload-from: ./upload
        upload-to: ${{ env.GOOGLE_DRIVE_DESTINATION }}

完成したらいつもどおりgit add, git commit, git pushを行う。

結果確認

結果はGit HubリポジトリのActionsタブで確認できる。