Nástroj pro spouštění 4D kódu v CLI

Automaticky přeloženo z Deepl

V odvětví vývoje se CI/CD stalo standardní praxí. S každou změnou kódu se generují automatizované akce, jako je testování, kompilace, sestavení, doručení a někdy i nasazení, aby se zajistila vysoká kvalita kódu a jeho snadná integrace do stávajícího systému.

Tyto akce vyžadují nástroj, který potřebný kód spustí. Jako vývojáři 4D jsme se rozhodli poskytnout bezplatný nástroj, který vývojářům umožní provádět elementární akce. Tento nástroj se nazývá tool4d a zjednodušuje proces provádění potřebných akcí v prostředí 4D.

V tomto článku se budeme zabývat funkcemi nástroje tool4d a tím, jak jej lze využít k vylepšení procesu vývoje.

Tato nová aplikace je určena především k začlenění do potrubí CI/CD. Hlavním cílem tool4d je tedy vykonávat 4D kód s minimální instrukční sadou, minimální paměťovou stopou a minimální velikostí. Aplikaci tool4d lze považovat za podmnožinu aplikace 4D.

Jak to funguje?

Za prvé, tool4d je vydáván stejně jako 4D, takže sdílejí stejnou verzi a číslo sestavení.
Přestože se tool4d zobrazuje pomocí své ikony, aplikaci lze spustit pouze prostřednictvím rozhraní příkazového řádku.
Její spuštění probíhá vždy v bezhlavém režimu. Pro zpětné zasílání informací můžete použít proud stdout, a to i v systému Windows, následujícím způsobem:

LOG EVENT(Into system standard outputs; “message”)

Vždy se provede následující posloupnost metod:
1. tool4d provede databázovou metodu On Startup, kromě případů, kdy je definován parametr –skip-onstartup.
2. Tool4d provede metodu určenou parametrem –startup-method, pokud je definován.
3. Tool4d provede databázovou metodu On Exit, kromě případu, kdy je definován parametr –skip-onstartup.
4. tool4d se ukončí.

Aby byl tool4d co nejlehčí, bylo mnoho prvků 4D vypnuto, například aplikační server, webový server, SQL server, plánovač zálohování atd.
A v neposlední řadě tool4d nepotřebuje ke svému běhu žádnou licenci.
Další podrobnosti najdete v dokumentaci.

Jak jej získat?

Aplikace tool4d jsou k dispozici na portálu Product Download pro tři systémové cíle: Windows, macOS Intel a macOS Silicon.
Vzhledem k tomu, že tool4d je zdarma a lze jej používat v rámci CI/CD pipeline, můžete jej získat bez ověření pod adresou https://resources-downloads.4d.com s přesným řetězcem dotazu na Product Downloads.
Například nejnovější verze v20 LTS lze stáhnout přímo pomocí těchto odkazů:

https://resources-download.4d.com/release/20.x/20.0/latest/mac/tool4d_v20.0_mac_arm.tar.xz
https://resources-download.4d.com/release/20.x/20.0/latest/mac/tool4d_v20.0_mac_x86.tar.xz
https://resources-download.4d.com/release/20.x/20.0/latest/win/tool4d_v20.0_win.tar.xz

Balíčky jsou komprimovány algoritmem tar.xz, což zaručuje minimální velikost souboru. Pokud nemáte v systému nainstalovanou žádnou aplikaci kompatibilní s tímto formátem, můžete balíček dekomprimovat pomocí následujících příkazových řádků.

Windows:
Soubor: tar xvzf {tool4dCompressedFile}. -C {cílová_složka}

macOS: V systému MacOS můžete použít následující příkaz:
v systému MacOS: tar xvzf {tool4dCompressedFile}

UseCases

Existuje mnoho případů použití tool4d. Zde jsou některé z nich, ale necháme vás představit si mnoho dalších případů použití!

Kompilace

Tool4d je velmi vhodný pro sestavování úloh, jako jsou unit testy nebo kompilace. Zde je příklad malého projektu s názvem compileThisProject, který kompiluje jiný projekt.
Projekt compileThisProject získá cestu k souboru projektu, zkompiluje jej a poté zobrazí výsledek kompilace v terminálu. Jeho databázová metoda „On Startup“ obsahuje tento kód:

LOG EVENT(Into system standard outputs; "Compilation starts\r\n")
var $projectPath : Text
var $result : Integer
var $compilationReturn : Object

// Getting the string value of the --user-param parameter in the CLI
$result:=Get database parameter(User param value; $projectPath)
If ($projectPath#"")
	$compilationReturn:=Compile project(File($projectPath))
	LOG EVENT(Into system standard outputs; "Compilation returns:\r\n"+JSON Stringify($compilationReturn; *))
End if 

Příkazový řádek, který se má provést:

/Applications/tool4d.app/Contents/MacOS/tool4d --project "/Users/Me/compileThisProject/Project/compileThisProject.4DProject" --user-param "/Users/Me/Test/Project/Test.4DProject".

A zde je výsledek:


Compilation returns:
{
"success": true,
"errors": []
}

Kontinuální integrace

Kompilace je jedním z kroků v CI/CD pipeline. Ať už používáte jakoukoli platformu CI/CD, můžete pro každý krok použít tool4d!
O akcích GitHub jsme již hovořili v tomto příspěvku na blogu. Jedná se o platformu GitHub, která umožňuje automaticky spouštět akce na události GitHubu, jako je odeslání kódu nebo sloučení požadavku na stažení. A tyto akce lze spouštět na virtuálních počítačích se systémem MacOS nebo Windows.
Zde je ukázka skriptu YAML pro GitHub Actions, který spouští unit testy při každém odeslání kódu na GitHub:

název: Unit Tests
on:
push:
branches: [ "main" ]
jobs:
Unit-tests-on-windows:
name: Unit Tests on Windows
runs-on: windows-latest
permissions: write-all
steps:
-
- název: "Download latest tool4d release and expand"
spustit: |
curl https://resources-download.4d.com/release/20.x/20.0/latest/win/tool4d_v20.0_win.tar.xz -o tool4d.tar.xz -sL  tar xvJf tool4d.tar.xz -C tool4d
- název: "Spustit jednotkové testy"
run: |
./tool4d/tool4d.exe --project ${{ github.workspace }}\Project\myProject.4DProject --dataless --skip-onstartup --startup-method "runUnitTests"
Unit-tests-on-macos:
name: Unit Tests on macOS
needs: [
runs-on: macOS-latest
permissions: write-all
steps:
-
- název: "Download latest tool4d release and expand"
spustit: |
curl https://resources-download.4d.com/release/20.x/20.0/latest/mac/tool4d_v20.0_mac_x86.tar.xz -o tool4d.tar.xz -sL  tar xvzf tool4d.tar.xz
- název: "Spustit jednotkové testy projektu"
run: |
./tool4d.app/Contents/MacOS/tool4d --project ${{ github.workspace }}/Project/myProject.4DProject --dataless --skip-onstartup --startup-method "runUnitTests"

Všimněte si, že tool4d nepotřebuje ke svému běhu žádnou licenci, takže není třeba nic registrovat ve virtuálních strojích!

Údržba

Nástroj tool4d můžete použít také pro úkoly údržby. Například pokud chcete ověřit datový soubor serveru 4D a zajistit, aby se k serveru nepřipojil žádný uživatel. Všimněte si, že pro toto použití můžete použít také aplikaci 4D Server s parametrem „–utility“: provede stejnou sekvenci metod jako tool4d.

Příkazový řádek k tomu:
/Server --utility --project "{pathToProjectFile}" --skip-onstartup --startup-method "verifyDataFile".

Metoda verifyDataFile obsahuje volání příkazu VERIFY CURRENT DATA FILE.

 

Doufám, že vám tool4d pomůže při návrhu CI/CD pipeline a dalších úlohách!

Neustále se snažíme poskytovat našim uživatelům co nejlepší zkušenosti a vyzýváme vás, abyste se podělili o své názory a zpětnou vazbu na fóru 4D. Vaše zpětná vazba nám pomáhá lépe porozumět vašim potřebám a neustále zlepšovat naše produkty a služby.

Avatar
• Product Owner • Damien Fuzeau se připojil k týmu 4D Product v únoru 2019. Jako Product Owner má na starosti psaní uživatelských příběhů a jejich následný převod do funkčních specifikací. Jeho úkolem je také zajistit, aby dodávané implementace funkcí vyhovovaly potřebám zákazníků. Damien vystudoval softwarové inženýrství na University of Nantes. Ve své bývalé společnosti strávil více než 23 let, nejprve jako vývojář (objevil 4D v roce 1997) a později jako technický manažer a softwarový architekt. Tato společnost je partnerem 4D OEM a nasadila obchodní software založený na 4D pro tisíce uživatelů na stovkách serverů. Damien je tedy zvyklý na 4D vývoj a nasazení ve vícejazyčném kontextu.