gowalk-cicd 1.0.18 → 1.0.20
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 +23 -2
- package/action/.daemux-version +1 -1
- package/android-action/.daemux-version +1 -1
- package/package.json +1 -1
- package/templates/deploy.yml +27 -2
package/README.md
CHANGED
|
@@ -103,6 +103,22 @@ 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
|
+
|
|
106
122
|
### Private git dependencies (Flutter)
|
|
107
123
|
|
|
108
124
|
A Flutter app can depend on private git packages:
|
|
@@ -127,8 +143,13 @@ the token lives in one revocable place:
|
|
|
127
143
|
gh secret set GIT_PRIVATE_TOKEN --repo my-org/my-app
|
|
128
144
|
```
|
|
129
145
|
|
|
130
|
-
Without the secret the step
|
|
131
|
-
unaffected.
|
|
146
|
+
Without the secret the step prints a note and exits 0, so repos that do not need
|
|
147
|
+
it are unaffected.
|
|
148
|
+
|
|
149
|
+
> The emptiness check happens in the shell rather than in the step's `if:`.
|
|
150
|
+
> GitHub does not expose the `secrets` context to a step-level `if:` — putting
|
|
151
|
+
> it there does not evaluate to false, it makes the entire workflow file invalid
|
|
152
|
+
> and every run fails before any job starts.
|
|
132
153
|
|
|
133
154
|
### Localized release notes
|
|
134
155
|
|
package/action/.daemux-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.20
|
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.20
|
package/package.json
CHANGED
package/templates/deploy.yml
CHANGED
|
@@ -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
|
|
@@ -150,14 +166,23 @@ jobs:
|
|
|
150
166
|
# https://github.com/<org>/<repo>.git URLs resolve on the runner, so the
|
|
151
167
|
# token lives in one revocable place. No secret, no step — repos that do
|
|
152
168
|
# not need it are unaffected.
|
|
169
|
+
# The `secrets` context is NOT available in a step-level `if:` — using it
|
|
170
|
+
# there does not evaluate false, it makes the whole workflow file invalid
|
|
171
|
+
# and every run fails before any job starts. So the secret comes in as env
|
|
172
|
+
# and the emptiness check happens in the shell.
|
|
153
173
|
- name: Authenticate private git dependencies
|
|
154
|
-
if: ${{ steps.mode.outputs.mode == 'local' && steps.flutter.outputs.enabled == 'true'
|
|
174
|
+
if: ${{ steps.mode.outputs.mode == 'local' && steps.flutter.outputs.enabled == 'true' }}
|
|
155
175
|
shell: bash
|
|
156
176
|
env:
|
|
157
177
|
GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
|
|
158
178
|
run: |
|
|
159
|
-
|
|
179
|
+
if [ -z "${GIT_PRIVATE_TOKEN:-}" ]; then
|
|
180
|
+
echo "No GIT_PRIVATE_TOKEN secret; private git dependencies must carry their own credentials."
|
|
181
|
+
exit 0
|
|
182
|
+
fi
|
|
160
183
|
echo "::add-mask::$GIT_PRIVATE_TOKEN"
|
|
184
|
+
git config --global url."https://x-access-token:${GIT_PRIVATE_TOKEN}@github.com/".insteadOf "https://github.com/"
|
|
185
|
+
echo "Configured authenticated github.com remotes for pub."
|
|
161
186
|
# Same reason as the iOS job: apps using AppLocalizations must generate it
|
|
162
187
|
# before anything analyses or compiles them. No-op for apps without l10n.
|
|
163
188
|
- name: Generate localizations
|