📌
GitHub Actions の Secrets からデータを取り出して Artifact に保存するワークフロー
背景
Androidのjksファイルがプロジェクトの共有フォルダから消えてしまっていた。GitHub Actions の Secrets には Base64 形式で残っていたので、ワークフローを作って取り出すことにした。
やったこと
といってもほぼAI(CursorのAutoモデル)に丸投げで書いてもらった。
name: Retrieve JKS File
on:
workflow_dispatch:
push:
jobs:
decode-and-upload:
runs-on: ubuntu-latest
steps:
- name: Decode JKS file
run: |
echo "${{ secrets.ANDROID_JKS }}" | base64 -d > keystore.jks
- name: Upload JKS file as artifact
uses: actions/upload-artifact@v4
with:
name: keystore
path: keystore.jks
retention-days: 1
人間が修正した点
push:
を追加
AIは workflow_dispatch:
のみをトリガーに設定したが、使い捨てのワークフローなので main ブランチ以外で実行して用が終わったら消したい。push:
トリガーがないと初回の実行ができない(そしてうまく行けば初回の実行だけで十分)なので追加した。
一時ファイル保存先のパス
最初は
echo "${{ secrets.ANDROID_JKS }}" | base64 -d > app/keystore.jks
なるパスに保存するように書かれてたが、今回は Flutter アプリのためプロジェクトルート直下には app
というディレクトリが無いのでコケていた。人の手で修正。
実行方法
普通に gh workflow run {ワークフロー名}
しただけでは、mainブランチに無いので当然実行できない。push:
トリガーがあればプッシュしたら自動で実行されるが、初回が失敗したら次は gh コマンドで workflow_dispatch:
で実行したい。しかし AI は gh workflow run {ワークフロー名}
を提案した。
実際は gh workflow run {ワークフロー名} --ref {ブランチ名}
じゃないと動かない。
結論
Cursor のデフォルトのモデルはかなりのコピペエンジニアかもしんない。
Discussion