From 3089eb615c033f4d346a59dada1ee820d346dbf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Audiger?= <31616285+jaudiger@users.noreply.github.com> Date: Tue, 28 Jan 2025 05:12:49 +0100 Subject: [PATCH] feat: add auto-update functionality and improve test script in amber project (#212) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérémy Audiger --- packages/amber/project.bri | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/packages/amber/project.bri b/packages/amber/project.bri index a82b371..e93ae27 100644 --- a/packages/amber/project.bri +++ b/packages/amber/project.bri @@ -1,3 +1,4 @@ +import nushell from "nushell"; import * as std from "std"; import { cargoBuild } from "rust"; @@ -19,8 +20,32 @@ export default function amber(): std.Recipe { }); } -export function test() { - return std.runBash` - amber --version | tee "$BRIOCHE_OUTPUT" +export async function test() { + const script = std.runBash` + amber --version | tr -d '\n' | tee "$BRIOCHE_OUTPUT" `.dependencies(amber()); + + const result = await script.toFile().read(); + + // Check that the result contains the expected version + const expected = `amber ${project.version}`; + std.assert(result === expected, `expected '${expected}', got '${result}'`); + + return script; +} + +export function autoUpdate() { + const src = std.file(std.indoc` + let version = http get https://api.github.com/repos/amber-lang/amber/releases/latest + | get tag_name + + $env.project | from json | update version $version | to json + `); + + return std.withRunnable(std.directory(), { + command: "nu", + args: [src], + env: { project: JSON.stringify(project) }, + dependencies: [nushell()], + }); }