Skip to content

Commit 6a22249

Browse files
committed
ci: one-off copy of the release secrets into the release environment
1 parent 51ff463 commit 6a22249

1 file changed

Lines changed: 54 additions & 0 deletions

File tree

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: Copy release secrets (one-off)
2+
3+
# Runs once, from the throwaway branch tmp/copy-release-secrets, never from main.
4+
# Copies the release credentials from repository secrets into the `release`
5+
# environment, so nobody has to re-type them. The token needs temporary
6+
# "Secrets" and "Environments" write permissions for this run only.
7+
# Delete the branch once the run is green.
8+
9+
on:
10+
push:
11+
branches: [tmp/copy-release-secrets]
12+
13+
permissions: {}
14+
15+
jobs:
16+
copy:
17+
runs-on: ubuntu-latest
18+
env:
19+
GH_TOKEN: ${{ secrets.OPENSCREEN_RELEASE_TOKEN }}
20+
REPO: ${{ github.repository }}
21+
OPENSCREEN_RELEASE_TOKEN: ${{ secrets.OPENSCREEN_RELEASE_TOKEN }}
22+
MAC_CERTIFICATE_P12: ${{ secrets.MAC_CERTIFICATE_P12 }}
23+
MAC_CERTIFICATE_PASSWORD: ${{ secrets.MAC_CERTIFICATE_PASSWORD }}
24+
MAC_CSC_NAME: ${{ secrets.MAC_CSC_NAME }}
25+
APPLE_ID: ${{ secrets.APPLE_ID }}
26+
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
27+
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
28+
AZURE_AD_TENANT_ID: ${{ secrets.AZURE_AD_TENANT_ID }}
29+
AZURE_AD_APPLICATION_CLIENT_ID: ${{ secrets.AZURE_AD_APPLICATION_CLIENT_ID }}
30+
AZURE_AD_APPLICATION_SECRET: ${{ secrets.AZURE_AD_APPLICATION_SECRET }}
31+
SELLER_ID: ${{ secrets.SELLER_ID }}
32+
WINGET_ACC_TOKEN: ${{ secrets.WINGET_ACC_TOKEN }}
33+
HOMEBREW_TAP_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }}
34+
AUR_SSH_PRIVATE_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
35+
steps:
36+
- name: Copy each secret into the release environment
37+
run: |
38+
set -euo pipefail
39+
failed=0
40+
for name in OPENSCREEN_RELEASE_TOKEN MAC_CERTIFICATE_P12 MAC_CERTIFICATE_PASSWORD \
41+
MAC_CSC_NAME APPLE_ID APPLE_TEAM_ID APPLE_APP_SPECIFIC_PASSWORD AZURE_AD_TENANT_ID \
42+
AZURE_AD_APPLICATION_CLIENT_ID AZURE_AD_APPLICATION_SECRET SELLER_ID \
43+
WINGET_ACC_TOKEN HOMEBREW_TAP_TOKEN AUR_SSH_PRIVATE_KEY; do
44+
value="${!name}"
45+
if [ -z "$value" ]; then
46+
echo "::error::$name is empty at repository level, not copied"
47+
failed=1
48+
continue
49+
fi
50+
# printf keeps the value byte for byte; gh reads it from stdin.
51+
printf '%s' "$value" | gh secret set "$name" --env release --repo "$REPO"
52+
echo "copied $name"
53+
done
54+
exit "$failed"

0 commit comments

Comments
 (0)