<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to CI CD Integration</title><link>https://sourceforge.net/p/lastest/wiki/CI%2520CD%2520Integration/</link><description>Recent changes to CI CD Integration</description><atom:link href="https://sourceforge.net/p/lastest/wiki/CI%20CD%20Integration/feed" rel="self"/><language>en</language><lastBuildDate>Wed, 06 May 2026 09:06:53 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/lastest/wiki/CI%20CD%20Integration/feed" rel="self" type="application/rss+xml"/><item><title>CI CD Integration modified by Viktor Fási</title><link>https://sourceforge.net/p/lastest/wiki/CI%2520CD%2520Integration/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -1,6 +1,10 @@
 # CI/CD Integration

 Lastest integrates with CI/CD pipelines via the CLI runner and a reusable GitHub Action.
+
+![Development &amp;amp; Review Flow](images/development-flow.png)
+
+End-to-end view: code push → PR → CI/CD pipeline → preview env or staging → Lastest visual validation → manager review → approve &amp;amp; merge or request changes.

 ---

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Viktor Fási</dc:creator><pubDate>Wed, 06 May 2026 09:06:53 -0000</pubDate><guid>https://sourceforge.net2e210a98d9636e456288319cee58a740853fcdce</guid></item><item><title>CI CD Integration modified by Viktor Fási</title><link>https://sourceforge.net/p/lastest/wiki/CI%2520CD%2520Integration/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,6 +1,6 @@
 # CI/CD Integration

-Lastest2 integrates with CI/CD pipelines via the CLI runner and a reusable GitHub Action.
+Lastest integrates with CI/CD pipelines via the CLI runner and a reusable GitHub Action.

 ---

@@ -35,11 +35,11 @@

 ## GitHub Action (Reusable)

-Zero-config CI/CD integration. No local Playwright install needed -- tests run on your Lastest2 server via a remote runner.
+Zero-config CI/CD integration. No local Playwright install needed -- tests run on your Lastest server via a remote runner.

     :::yaml

     - name: Run visual regression tests
-      uses: dexilion-team/lastest2/action@main
+      uses: las-team/lastest/action@main
       with:
         server-url: ${{ secrets.LASTEST_SERVER_URL }}
         runner-token: ${{ secrets.LASTEST_RUNNER_TOKEN }}
@@ -50,7 +50,7 @@

 | Input | Description | Required | Default |
 |-------|-------------|----------|---------|
-| `server-url` | Lastest2 server URL | Yes | - |
+| `server-url` | Lastest server URL | Yes | - |
 | `runner-token` | Runner authentication token | Yes | - |
 | `timeout` | Build completion timeout (seconds) | No | `300` |
 | `fail-on-changes` | Fail when visual changes detected | No | `false` |
@@ -60,7 +60,7 @@
 | Output | Description |
 |--------|-------------|
 | `status` | Build status (`passed`, `failed`, `review_required`, `safe_to_merge`, `blocked`) |
-| `build-url` | Link to build results in Lastest2 |
+| `build-url` | Link to build results in Lastest |
 | `changed-count` | Number of visual changes detected |
 | `passed-count` | Number of passed tests |
 | `failed-count` | Number of failed tests |
@@ -70,7 +70,7 @@

 ### Setup

-1. Register a remote runner in Lastest2 (Settings &amp;gt; Runners)
+1. Register a remote runner in Lastest (Settings &amp;gt; Runners)

 2. Copy the runner token
 3. Add `LASTEST_SERVER_URL` and `LASTEST_RUNNER_TOKEN` as GitHub repository secrets
 4. Add the action to your workflow
@@ -83,7 +83,7 @@


 1. Requires a GitHub or GitLab connection
 2. Select a feature branch (not main/master)
-3. Lastest2 compares against the default branch via the API
+3. Lastest compares against the default branch via the API
 4. Tests are matched to changed files by URL patterns and code references
 5. Only affected tests run

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Viktor Fási</dc:creator><pubDate>Wed, 06 May 2026 09:06:51 -0000</pubDate><guid>https://sourceforge.net79a927a35cb241f440f1d92dda6ef502928599b1</guid></item><item><title>CI CD Integration modified by Viktor Fási</title><link>https://sourceforge.net/p/lastest/wiki/CI%2520CD%2520Integration/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="h-cicd-integration"&gt;CI/CD Integration&lt;/h1&gt;
&lt;p&gt;Lastest2 integrates with CI/CD pipelines via the CLI runner and a reusable GitHub Action.&lt;/p&gt;
&lt;hr/&gt;
&lt;h2 id="h-cli-test-runner"&gt;CLI Test Runner&lt;/h2&gt;
&lt;p&gt;Run visual regression tests from the command line:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;pnpm&lt;span class="w"&gt; &lt;/span&gt;test:visual&lt;span class="w"&gt; &lt;/span&gt;--repo-id&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;id&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;options&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="h-options"&gt;Options&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Flag&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--repo-id &amp;lt;id&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Repository ID (required)&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--base-url &amp;lt;url&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Override target URL&lt;/td&gt;
&lt;td&gt;&lt;code&gt;http://localhost:3000&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--headless&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run in headless mode&lt;/td&gt;
&lt;td&gt;&lt;code&gt;true&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--no-headless&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Run with visible browser&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--output-dir &amp;lt;dir&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Screenshot output directory&lt;/td&gt;
&lt;td&gt;&lt;code&gt;./test-output&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="h-example-github-actions-with-cli"&gt;Example: GitHub Actions with CLI&lt;/h3&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class=""&gt;Run Visual Tests&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class=""&gt;pnpm test:visual --repo-id ${{ env.REPO_ID }} --base-url http://localhost:3000&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;REPO_ID&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class=""&gt;your-repo-id&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The runner automatically captures &lt;code&gt;GITHUB_HEAD_REF&lt;/code&gt;, &lt;code&gt;GITHUB_REF_NAME&lt;/code&gt;, and &lt;code&gt;GITHUB_SHA&lt;/code&gt; for git tracking.&lt;/p&gt;
&lt;hr/&gt;
&lt;h2 id="h-github-action-reusable"&gt;GitHub Action (Reusable)&lt;/h2&gt;
&lt;p&gt;Zero-config CI/CD integration. No local Playwright install needed -- tests run on your Lastest2 server via a remote runner.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class=""&gt;Run visual regression tests&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;uses&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class=""&gt;dexilion-team/lastest2/action@main&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;with&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;server-url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class=""&gt;${{ secrets.LASTEST_SERVER_URL }}&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;runner-token&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class=""&gt;${{ secrets.LASTEST_RUNNER_TOKEN }}&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;timeout&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;'300'&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;fail-on-changes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;'false'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3 id="h-inputs"&gt;Inputs&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Input&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;server-url&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lastest2 server URL&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;runner-token&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Runner authentication token&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Build completion timeout (seconds)&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;&lt;code&gt;300&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;fail-on-changes&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Fail when visual changes detected&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="h-outputs"&gt;Outputs&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Output&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Build status (&lt;code&gt;passed&lt;/code&gt;, &lt;code&gt;failed&lt;/code&gt;, &lt;code&gt;review_required&lt;/code&gt;, &lt;code&gt;safe_to_merge&lt;/code&gt;, &lt;code&gt;blocked&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;build-url&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Link to build results in Lastest2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;changed-count&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Number of visual changes detected&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;passed-count&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Number of passed tests&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;failed-count&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Number of failed tests&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;total-tests&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Total number of tests run&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Results are automatically posted to the GitHub Actions step summary.&lt;/p&gt;
&lt;h3 id="h-setup"&gt;Setup&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Register a remote runner in Lastest2 (Settings &amp;gt; Runners)&lt;/li&gt;
&lt;li&gt;Copy the runner token&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;LASTEST_SERVER_URL&lt;/code&gt; and &lt;code&gt;LASTEST_RUNNER_TOKEN&lt;/code&gt; as GitHub repository secrets&lt;/li&gt;
&lt;li&gt;Add the action to your workflow&lt;/li&gt;
&lt;/ol&gt;
&lt;hr/&gt;
&lt;h2 id="h-smart-run"&gt;Smart Run&lt;/h2&gt;
&lt;p&gt;Run only tests affected by your code changes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Requires a GitHub or GitLab connection&lt;/li&gt;
&lt;li&gt;Select a feature branch (not main/master)&lt;/li&gt;
&lt;li&gt;Lastest2 compares against the default branch via the API&lt;/li&gt;
&lt;li&gt;Tests are matched to changed files by URL patterns and code references&lt;/li&gt;
&lt;li&gt;Only affected tests run&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This dramatically reduces CI time for large test suites.&lt;/p&gt;
&lt;hr/&gt;
&lt;h2 id="h-webhook-triggered-builds"&gt;Webhook-Triggered Builds&lt;/h2&gt;
&lt;p&gt;Configure webhooks in GitHub or GitLab to trigger builds automatically:&lt;/p&gt;
&lt;h3 id="h-github"&gt;GitHub&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Connect your GitHub account in Settings&lt;/li&gt;
&lt;li&gt;Enable webhooks for your repository&lt;/li&gt;
&lt;li&gt;Builds trigger on PR open/update/push&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="h-gitlab"&gt;GitLab&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Connect your GitLab account in Settings&lt;/li&gt;
&lt;li&gt;Enable webhooks for your project&lt;/li&gt;
&lt;li&gt;Builds trigger on MR open/update/push&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Results are posted back as PR/MR comments automatically.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Viktor Fási</dc:creator><pubDate>Wed, 06 May 2026 09:06:48 -0000</pubDate><guid>https://sourceforge.net2276ae71488437e5fd4df004bd587f575c979a55</guid></item></channel></rss>