使用 Github 中的 Actions 进行测试时,是不会显示 Secrets 值的,这里提供一些解决思路:
一、使用 base64编码对 Secrets 值加密
保存以下代码为.yml
文件,放在这个位置.github/workflows/
,然后Actions
,选择All workflowS
下的Recovering secrets
,点击run workflow
,如图,复制代码进行base64解码。
name: Recovering secrets
# Assumption:
# You've created the following GitHub secrets in your repository:
# MY_CLIENT_ID - encode/decode with base64 - useful for private repositories
on:
push:
workflow_dispatch:
jobs:
base64:
name: Recover With Base64
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- env:
DOMAIN: ${{secrets.DOMAIN}}
USERNAME: ${{secrets.USERNAME1}}
PASSWD: ${{secrets.PASSWD1}}
PUSH_KEY: ${{secrets.PUSH_KEY}}
run: |
echo "DOMAIN (base64) = $(echo ${DOMAIN} | base64)"
echo "PASSWD1 (base64) = $(echo ${PASSWD} | base64)"
echo "PUSH_KEY (base64) = $(echo ${PUSH_KEY} | base64)"
echo "USERNAME1 (base64) = $(echo ${USERNAME} | base64)"
echo "Copy the above value, and then execute locally:"
二、输出到当前 Repository 中
保存以下代码为.yml
文件,放在这个位置.github/workflows/
,然后Actions
,选择All workflowS
下的KeepActionAlive
,点击run workflow
,如图。
name: 'KeepActionAlive'
on:
workflow_dispatch:
jobs:
auto_renew:
runs-on: ubuntu-latest
steps:
- name: 'Checkout codes'
uses: actions/checkout@v2
- name: 'Avoid Github Workflow being suspended'
run: echo ${{secrets.PASSWD1}} > UUID.txt
- name: 'Commit Files'
id: commit
run: |
git config --local user.email "[email protected]"
git config --local user.name "GitHub Action"
git add .
git diff --quiet && git diff --staged --quiet || git commit -am 'Keep Github Action Alive XD'
echo ::set-output name=status::success
- name: 'GitHub Push'
if: steps.commit.output.status != 'success'
uses: ad-m/[email protected]
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ github.ref }}
三、通过第三方推送服务
保存以下代码为.sh
文件,写一个workflow
来执行该shell文件,查看第三方推送服务。
#!/bin/bash
PATH="/usr/local/bin:/usr/bin:/bin"
date=$(date '+%Y-%m-%d %H:%M:%S')
if [ "${PUSH_KEY}" == "" ]; then
push_status='"未配置推送 PUSH_KEY"'
else
text="签到结果"
desp="站点: ${DOMAIN}"+$'\n\n'+"用户名: ${USERNAME}"+$'\n\n'+"${login_text}"+$'\n\n'+"${checkin_text}"+$'\n\n'
push=$(curl -s -X POST "http://www.pushplus.plus/send" -d token=${PUSH_KEY} -d title="${text}" -d content="${desp}")
push_code=$(echo ${push} | jq '.code')
if [ ${push_code} == 200 ]; then
push_status='"签到结果推送成功"'
else
push_status='"签到结果推送失败"'
fi
fi
显示Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20,这个要怎么改呀 (纯小白