本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
本文链接地址: https://www.huangyunkun.com/2020/02/03/github-action-large-secrets/
GitHub Action提供了对于Secrets的支持,可以保存常见的私密信息,比如API_TOKEN等信息,但是对于有些场景还需要私密文件的支持,比如Flutter打包Android APK的时候需要两个文件,一个是key.jks,另外一个是相关配置,一般为key.properties或者放在local.properties中。
这种情况可以先本地加密需要的文件,然后在Github Action中解密,解密所需的信息放在Github Action Secrets即可。
这里使用gpg AES256进行加密,指令如下:
gpg --symmetric --cipher-algo AES256 key.properties
加密的时候输入秘钥,并配置在Github Action Secrets中。将加密好的文件放在.github目录中,并创建解密用的脚本
#!/bin/sh
# Decrypt the file
gpg --quiet --batch --yes --decrypt --passphrase="$LARGE_SECRET_PASSPHRASE" \
--output $GITHUB_WORKSPACE/android/key.properties $GITHUB_WORKSPACE/.github/secrets/key.properties.gpg
echo "Decrypt key.properties done"
gpg --quiet --batch --yes --decrypt --passphrase="$LARGE_SECRET_PASSPHRASE" \
--output $GITHUB_WORKSPACE/.github/secrets/key.jks $GITHUB_WORKSPACE/.github/secrets/key.jks.gpg
echo "Decrypt key.jks done"
目录结构如下:

在对应的CI脚本中新增一行
- name: Decrypt large secret
run: ./.github/scripts/decrypt_secret.sh
env:
LARGE_SECRET_PASSPHRASE: ${{ secrets.LARGE_SECRET_PASSPHRASE }}
参考
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载自夜明的孤行灯
本文链接地址: https://www.huangyunkun.com/2020/02/03/github-action-large-secrets/