gowalk-cicd 1.0.127 → 1.0.128
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/action/.daemux-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.128
|
|
@@ -29,12 +29,37 @@ function fingerprint(platform, ref = 'HEAD') {
|
|
|
29
29
|
row && input(row.slice(row.indexOf('\t') + 1), platform)).sort().join('\0'));
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
// `flutter pub get` writes this. It is gitignored on purpose, and it is the only
|
|
33
|
+
// offline answer to "does this project's iOS half need CocoaPods".
|
|
34
|
+
const PLUGINS = '.flutter-plugins-dependencies';
|
|
35
|
+
const PODS = ['ios/Podfile', 'ios/Podfile.lock'];
|
|
36
|
+
|
|
37
|
+
function iosPodsCommitted() {
|
|
38
|
+
// Positive evidence only. A project that has never resolved its plugins, an
|
|
39
|
+
// unreadable manifest and a non-Flutter iOS app are all indeterminate here,
|
|
40
|
+
// and refusing on them would block apps this cannot speak about at all.
|
|
41
|
+
let resolved;
|
|
42
|
+
try {
|
|
43
|
+
resolved = JSON.parse(fs.readFileSync(PLUGINS, 'utf8'))?.plugins?.ios;
|
|
44
|
+
} catch { return true; }
|
|
45
|
+
if (!Array.isArray(resolved) || !resolved.length) return true;
|
|
46
|
+
const tracked = new Set(git('ls-files', '-z', '--', ...PODS).split('\0').filter(Boolean));
|
|
47
|
+
return PODS.every(path => tracked.has(path));
|
|
48
|
+
}
|
|
49
|
+
|
|
32
50
|
function create(platforms = ['ios', 'android'], variables = {}) {
|
|
33
51
|
if (['main', 'master', ''].includes(git('branch', '--show-current').trim())) {
|
|
34
52
|
throw Error('mobile_release_task_branch_required');
|
|
35
53
|
}
|
|
36
54
|
const dirty = git('status', '--porcelain', '-z', '--untracked-files=all').split('\0').filter(Boolean);
|
|
37
55
|
if (dirty.some(row => row.slice(3) !== INTENT)) throw Error('mobile_release_source_not_committed');
|
|
56
|
+
// An intent is a freeze. Declaring a platform whose build inputs are missing
|
|
57
|
+
// spends the whole freeze on a job that cannot start: CI requires the
|
|
58
|
+
// committed lockfile and refuses Xcode-managed package downloads, so the iOS
|
|
59
|
+
// job fails in native preparation and the fix needs another intent. Across
|
|
60
|
+
// eight rebuild tasks on 2026-09-09 there were 35 Mobile Deploy runs and 3
|
|
61
|
+
// green conclusions, all three on the one repository committing this pair.
|
|
62
|
+
if (platforms.includes('ios') && !iosPodsCommitted()) throw Error('mobile_release_ios_pods_uncommitted');
|
|
38
63
|
const manifest = {schema: SCHEMA, configuration_sha256: configuration(variables),
|
|
39
64
|
platforms: Object.fromEntries(platforms.map(p => [p, fingerprint(p)]))};
|
|
40
65
|
fs.mkdirSync('.factory/releases', {recursive: true});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.128
|
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.128
|