gowalk-cicd 1.0.17 → 1.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -103,6 +103,49 @@ in Play Console; every later run detects API readiness and uploads to the
103
103
  `internal` track automatically. Override the track or status with repository
104
104
  variables `GOOGLE_PLAY_TRACK` and `GOOGLE_PLAY_STATUS`.
105
105
 
106
+ ### Runner disk space
107
+
108
+ An `ubuntu-24.04` runner leaves roughly 14 GB free on `/`, and a release Flutter
109
+ build — Gradle caches, build intermediates, and a 100–200 MB AAB — does not
110
+ reliably fit. The failure surfaces far from its cause:
111
+
112
+ ```
113
+ > java.io.IOException: No space left on device
114
+ zip I/O error: No space left on device
115
+ ```
116
+
117
+ The Android job removes the preinstalled toolchains a Flutter build never uses
118
+ (.NET, the Android NDK, GHC, PowerShell, Swift, Chromium, global node modules)
119
+ and prunes Docker images, reclaiming roughly 25 GB in a few seconds. It prints
120
+ `df -h /` before and after. Linux only; skipped in Bitrise mode.
121
+
122
+ ### Private git dependencies (Flutter)
123
+
124
+ A Flutter app can depend on private git packages:
125
+
126
+ ```yaml
127
+ dependencies:
128
+ my_package:
129
+ git: https://github.com/my-org/my_package.git
130
+ ```
131
+
132
+ The runner has no credentials for those, so `flutter pub get` fails with
133
+ `could not read Username for 'https://github.com'`. Embedding a PAT in the URL
134
+ works but publishes the token into your source and into every copy of the
135
+ lockfile.
136
+
137
+ Set the repository **secret** `GIT_PRIVATE_TOKEN` instead — a PAT with `repo`
138
+ read access — and the workflow rewrites `https://github.com/` to an
139
+ authenticated remote for the duration of the job. Plain URLs keep working and
140
+ the token lives in one revocable place:
141
+
142
+ ```bash
143
+ gh secret set GIT_PRIVATE_TOKEN --repo my-org/my-app
144
+ ```
145
+
146
+ Without the secret the step is skipped, so repos that do not need it are
147
+ unaffected.
148
+
106
149
  ### Localized release notes
107
150
 
108
151
  Both stores pick up per-locale release notes from committed files:
@@ -1 +1 @@
1
- 1.0.17
1
+ 1.0.19
@@ -1 +1 @@
1
- 1.0.17
1
+ 1.0.19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gowalk-cicd",
3
- "version": "1.0.17",
3
+ "version": "1.0.19",
4
4
  "description": "Zero-config GitHub Actions delivery for iOS TestFlight and Android Google Play.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -130,6 +130,22 @@ jobs:
130
130
  else
131
131
  echo "enabled=false" >> "$GITHUB_OUTPUT"
132
132
  fi
133
+ # A release Flutter build (Gradle caches + intermediates + a 100-200 MB AAB)
134
+ # does not fit in the ~14 GB an ubuntu runner leaves free on /, and the
135
+ # failure surfaces far from its cause: "No space left on device" out of
136
+ # aapt2, zip, or Gradle's own cache writer. Reclaiming the preinstalled
137
+ # toolchains this build will never use buys ~25 GB and costs a few seconds.
138
+ - name: Free runner disk space
139
+ if: ${{ steps.mode.outputs.mode == 'local' && runner.os == 'Linux' }}
140
+ shell: bash
141
+ run: |
142
+ echo "Before:"; df -h / | tail -1
143
+ sudo rm -rf /usr/share/dotnet /usr/local/lib/android/sdk/ndk \
144
+ /opt/ghc /usr/local/.ghcup /usr/local/share/powershell \
145
+ /usr/share/swift /usr/local/share/chromium \
146
+ /usr/local/lib/node_modules 2>/dev/null || true
147
+ sudo docker image prune --all --force >/dev/null 2>&1 || true
148
+ echo "After:"; df -h / | tail -1
133
149
  - name: Set up Java
134
150
  if: ${{ steps.mode.outputs.mode == 'local' }}
135
151
  uses: actions/setup-java@0f481fcb613427c0f801b606911222b5b6f3083a # v5
@@ -143,6 +159,21 @@ jobs:
143
159
  with:
144
160
  channel: stable
145
161
  cache: true
162
+ # Flutter apps can depend on private git packages. Most repos in this fleet
163
+ # embed a PAT directly in the pubspec URL, which publishes the token into
164
+ # source and into every fork of the lockfile. Setting the optional
165
+ # GIT_PRIVATE_TOKEN secret instead lets plain
166
+ # https://github.com/<org>/<repo>.git URLs resolve on the runner, so the
167
+ # token lives in one revocable place. No secret, no step — repos that do
168
+ # not need it are unaffected.
169
+ - name: Authenticate private git dependencies
170
+ if: ${{ steps.mode.outputs.mode == 'local' && steps.flutter.outputs.enabled == 'true' && secrets.GIT_PRIVATE_TOKEN != '' }}
171
+ shell: bash
172
+ env:
173
+ GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
174
+ run: |
175
+ git config --global url."https://x-access-token:${GIT_PRIVATE_TOKEN}@github.com/".insteadOf "https://github.com/"
176
+ echo "::add-mask::$GIT_PRIVATE_TOKEN"
146
177
  # Same reason as the iOS job: apps using AppLocalizations must generate it
147
178
  # before anything analyses or compiles them. No-op for apps without l10n.
148
179
  - name: Generate localizations