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タブで確認できる。