diff --git a/workflows_utils/add_to_output.dart b/workflows_utils/add_to_output.dart new file mode 100644 index 0000000..0c4e958 --- /dev/null +++ b/workflows_utils/add_to_output.dart @@ -0,0 +1,14 @@ +import 'dart:io'; + +Future setOutput(String item) async { + Map envVars = Platform.environment; + String? envPath = envVars["GITHUB_OUTPUT"]; + File ghEnv = File(envPath!); + String currentContent = await ghEnv.readAsString(); + if (currentContent.isNotEmpty) { + currentContent += "\n" "$item"; + } else { + currentContent = item; + } + ghEnv.writeAsString(currentContent); +} diff --git a/workflows_utils/get_project_version.dart b/workflows_utils/get_project_version.dart index 1d97ac0..9f8d695 100644 --- a/workflows_utils/get_project_version.dart +++ b/workflows_utils/get_project_version.dart @@ -1,11 +1,12 @@ import 'dart:io'; +import 'add_to_output.dart'; + main() async { final data = File('./pubspec.yaml'); String text = data.readAsStringSync(); String currentVersion = text.substring(text.indexOf("version: ") + 9, text.indexOf("\n", text.indexOf("version: "))); - await Process.run( - 'echo "project_version=v${currentVersion.trim()}" >> \$GITHUB_OUTPUT', [], - runInShell: true); + String versionEnvVar = "project_version=v${currentVersion.trim()}"; + await setOutput(versionEnvVar); } diff --git a/workflows_utils/labels_to_track.dart b/workflows_utils/labels_to_track.dart index 8a75a41..3c061e2 100644 --- a/workflows_utils/labels_to_track.dart +++ b/workflows_utils/labels_to_track.dart @@ -1,13 +1,12 @@ -import 'dart:io'; +import 'add_to_output.dart'; const List options = ["alpha", "beta", "internal"]; Future main(List labels) async { List trackLabels = List.from(labels); trackLabels.removeWhere((e) => !options.contains(e)); - String track = "alpha"; + String track = "track=alpha"; if (trackLabels.isNotEmpty) { - track = trackLabels.first; + track = "track=${trackLabels.first}"; } - await Process.run('echo "track=$track" >> \$GITHUB_OUTPUT', [], - runInShell: true); + await setOutput(track); } diff --git a/workflows_utils/labels_to_version_parts.dart b/workflows_utils/labels_to_version_parts.dart index 420b131..ff44a4c 100644 --- a/workflows_utils/labels_to_version_parts.dart +++ b/workflows_utils/labels_to_version_parts.dart @@ -1,4 +1,4 @@ -import 'dart:io'; +import 'add_to_output.dart'; const List options = ["major", "minor", "patch"]; Future main(List labels) async { @@ -7,8 +7,7 @@ Future main(List labels) async { String parts = ""; if (versionParts.isNotEmpty) { parts = versionParts.join(","); - parts = "bump:$parts"; + parts = "parts=bump:$parts"; } - await Process.run('echo "parts=$parts" >> \$GITHUB_OUTPUT', [], - runInShell: true); + await setOutput(parts); } diff --git a/workflows_utils/tst.txt b/workflows_utils/tst.txt new file mode 100644 index 0000000..e69de29