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 +43 -0
- package/action/.daemux-version +1 -1
- package/android-action/.daemux-version +1 -1
- package/package.json +1 -1
- package/templates/deploy.yml +31 -0
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:
|
package/action/.daemux-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.19
|
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
|
|
@@ -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
|