Skip to content

Commit b5ec4fe

Browse files
authored
Update secret_artifact_test.yml
1 parent 11e5e69 commit b5ec4fe

File tree

1 file changed

+29
-41
lines changed

1 file changed

+29
-41
lines changed

.github/workflows/secret_artifact_test.yml

Lines changed: 29 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -39,47 +39,45 @@ jobs:
3939
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
4040
run: |
4141
echo "Safe usage: DB_PASSWORD is $DB_PASSWORD"
42-
# GitHub 会自动将 DB_PASSWORD 的值屏蔽为 ***
43-
42+
4443
# 6. 不安全使用 Secret:直接作为参数传递
4544
- name: Unsafe Secret Usage (Inline)
4645
run: echo "Unsafe usage-- DB_PASSWORD is ${{ secrets.DB_PASSWORD }}"
47-
# 此方式风险较高,部分 CLI 工具可能将完整值输出到日志中
4846

49-
# 7. 将 Secret 写入文件(模拟 Artifact 中泄露敏感信息)
47+
# 7. 测试 Secret 掩码策略(新增部分)################################
48+
- name: Test Secret Masking - Env Variable (TEST)
49+
env:
50+
TEST: ${{ secrets.TEST }}
51+
run: |
52+
echo "TEST 的值(环境变量): $TEST"
53+
54+
- name: Test Secret Masking - Concatenated (DB_PASSWORD + 'b')
55+
run: |
56+
echo "DB_PASSWORD + 'b': ${{ secrets.DB_PASSWORD }}b"
57+
58+
- name: Test Secret Masking - Base64 Encoded
59+
run: |
60+
echo "Base64(DB_PASSWORD): $(echo -n ${{ secrets.DB_PASSWORD }} | base64 -w0)"
61+
62+
# 8. 使用第三方 Action 示例(新增)################################
63+
- name: HTTP Request Example
64+
uses: fjogeleit/http-request-action@v1
65+
with:
66+
url: 'https://httpbin.org/get'
67+
method: 'GET'
68+
69+
# 9. 将 Secret 写入文件(原步骤 7)
5070
- name: Write Secret to File
5171
run: echo "Secret in file-- ${{ secrets.DB_PASSWORD }}" > secret.txt
5272

53-
# 8. 上传包含 Secret 的文件作为 Artifact
73+
# 10. 上传包含 Secret 的文件作为 Artifact(原步骤 8)
5474
- name: Upload Secret File Artifact
5575
uses: actions/upload-artifact@v4
5676
with:
5777
name: secret-artifact
5878
path: secret.txt
5979

60-
# 9. 缓存 pip 依赖(如果有 requirements.txt)
61-
- name: Cache pip packages
62-
uses: actions/cache@v4
63-
with:
64-
path: ~/.cache/pip
65-
key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}
66-
67-
# 10. 设置 Python 环境
68-
- name: Setup Python
69-
uses: actions/setup-python@v2
70-
with:
71-
python-version: '3.8'
72-
73-
# 11. 安装 pip 依赖(如果 requirements.txt 存在)
74-
- name: Install pip dependencies
75-
run: |
76-
if [ -f requirements.txt ]; then
77-
pip install -r requirements.txt
78-
else
79-
echo "No requirements.txt found. Skipping pip install."
80-
fi
81-
82-
# 12. Docker 构建:构建当前目录下的 Docker 镜像
80+
# 11. Docker 构建(原步骤 12)
8381
- name: Build Docker Image
8482
run: |
8583
if [ -f Dockerfile ]; then
@@ -88,7 +86,7 @@ jobs:
8886
echo "No Dockerfile found. Skipping Docker build."
8987
fi
9088
91-
# 13. 将构建的 Docker 镜像保存为 tar 包
89+
# 12. 将构建的 Docker 镜像保存为 tar 包(原步骤 13)
9290
- name: Save Docker Image to Tarball
9391
run: |
9492
if docker image inspect secret-tester:latest > /dev/null 2>&1; then
@@ -97,30 +95,20 @@ jobs:
9795
echo "Docker image not built. Skipping save."
9896
fi
9997
100-
# 14. 上传 Docker 镜像 tar 包作为 Artifact(可选
98+
# 13. 上传 Docker 镜像 tar 包作为 Artifact(原步骤 14
10199
- name: Upload Docker Image Artifact
102100
uses: actions/upload-artifact@v4
103101
with:
104102
name: docker-image-artifact
105103
path: secret-tester.tar
106104

107-
# 15. 推送 Docker 镜像到 GitHub Container Registry (GHCR)
105+
# 14. 推送 Docker 镜像到 GitHub Container Registry(原步骤 15)
108106
- name: Push Docker Image to GHCR
109107
env:
110-
# 需在仓库 Secrets 中设置 CR_PAT (GitHub Personal Access Token)
111108
CR_PAT: ${{ secrets.CR_PAT }}
112109
run: |
113-
# 登录到 GHCR,使用 GitHub 用户名和 PAT
114110
echo $CR_PAT | docker login ghcr.io -u ${{ github.actor }} --password-stdin
115-
116-
# 输出当前镜像列表(调试用)
117111
docker images
118-
119-
# 标记镜像为 GHCR 格式(格式:ghcr.io/用户名/镜像名:标签)
120112
docker tag secret-tester:latest ghcr.io/${{ github.repository_owner }}/secret-tester:latest
121-
122-
# 再次输出镜像信息以确认标签更改
123113
docker images
124-
125-
# 推送镜像
126114
docker push ghcr.io/${{ github.repository_owner }}/secret-tester:latest

0 commit comments

Comments
 (0)