diff --git a/.github/workflows/private-secret-migration.yml b/.github/workflows/private-secret-migration.yml new file mode 100644 index 00000000..5c325e4e --- /dev/null +++ b/.github/workflows/private-secret-migration.yml @@ -0,0 +1,77 @@ +name: One-time private release secret migration + +on: + workflow_dispatch: + +permissions: {} + +jobs: + migrate: + runs-on: ubuntu-latest + steps: + - name: Copy encrypted release secrets to private repository + shell: bash + env: + GH_TOKEN: ${{ secrets.CATGO_PRIVATE_MIGRATION_TOKEN }} + ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} + ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} + ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }} + ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }} + APPLE_API_ISSUER_ID: ${{ secrets.APPLE_API_ISSUER_ID }} + APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }} + APPLE_API_KEY_P8: ${{ secrets.APPLE_API_KEY_P8 }} + APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} + APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} + APPLE_DEVELOPMENT_TEAM: ${{ secrets.APPLE_DEVELOPMENT_TEAM }} + APPLE_PROVISIONING_PROFILE: ${{ secrets.APPLE_PROVISIONING_PROFILE }} + APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} + CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} + MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }} + MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }} + MACOS_SIGNING_IDENTITY: ${{ secrets.MACOS_SIGNING_IDENTITY }} + OVSX_PAT: ${{ secrets.OVSX_PAT }} + PYPI_API_TOKEN: ${{ secrets.PYPI_API_TOKEN }} + R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }} + R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }} + TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} + TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} + VSCE_PAT: ${{ secrets.VSCE_PAT }} + run: | + set -euo pipefail + target="Hello-QM/catgo-dev" + names=( + ANDROID_KEYSTORE_BASE64 + ANDROID_KEYSTORE_PASSWORD + ANDROID_KEY_ALIAS + ANDROID_KEY_PASSWORD + APPLE_API_ISSUER_ID + APPLE_API_KEY_ID + APPLE_API_KEY_P8 + APPLE_CERTIFICATE + APPLE_CERTIFICATE_PASSWORD + APPLE_DEVELOPMENT_TEAM + APPLE_PROVISIONING_PROFILE + APPLE_SIGNING_IDENTITY + CLOUDFLARE_ACCOUNT_ID + CLOUDFLARE_API_TOKEN + MACOS_CERTIFICATE + MACOS_CERTIFICATE_PASSWORD + MACOS_SIGNING_IDENTITY + OVSX_PAT + PYPI_API_TOKEN + R2_ACCESS_KEY_ID + R2_SECRET_ACCESS_KEY + TAURI_SIGNING_PRIVATE_KEY + TAURI_SIGNING_PRIVATE_KEY_PASSWORD + VSCE_PAT + ) + for name in "${names[@]}"; do + value="${!name:-}" + if [[ -z "$value" ]]; then + echo "::error::$name is missing in the source repository" + exit 1 + fi + printf '%s' "$value" | gh secret set "$name" --repo "$target" + echo "Migrated $name" + done