Commit 988d5f4 for jssip.net

commit 988d5f4d73d356170bc80825820960764336c4fd
Author: José Luis Millán <jmillan@aliax.net>
Date:   Tue Jan 13 16:25:00 2026 +0100

    Github Action

diff --git a/.github/workflows/jssip.yaml b/.github/workflows/jssip.yaml
new file mode 100644
index 0000000..51c56a8
--- /dev/null
+++ b/.github/workflows/jssip.yaml
@@ -0,0 +1,62 @@
+name: jssip
+
+on:
+  push:
+    branches: [master]
+  pull_request:
+  workflow_dispatch:
+
+concurrency:
+  # Cancel a currently running workflow from the same PR, branch or tag when a
+  # new workflow is triggered.
+  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+  cancel-in-progress: true
+
+jobs:
+  ci:
+    strategy:
+      matrix:
+        ci:
+          - os: ubuntu-22.04
+            node: 20
+          - os: ubuntu-24.04
+            node: 22
+          - os: ubuntu-24.04
+            node: 24
+          - os: macos-14
+            node: 22
+          - os: macos-15
+            node: 24
+          - os: windows-2022
+            node: 22
+          - os: windows-2025
+            node: 24
+
+    runs-on: ${{ matrix.ci.os }}
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v4
+
+      - name: Node.js
+        uses: actions/setup-node@v4
+        with:
+          node-version: ${{ matrix.ci.node }}
+
+      - name: Configure cache
+        uses: actions/cache@v3
+        with:
+          path: |
+            ~/.npm
+          key: ${{ matrix.ci.os }}-node-${{ hashFiles('**/package.json') }}
+          restore-keys: |
+            ${{ matrix.ci.os }}-node-
+
+      - name: npm i
+        run: npm ci
+
+      - name: npm run lint
+        run: npm run lint
+
+      - name: npm run test
+        run: npm run test
diff --git a/README.md b/README.md
index 714ed2c..e015b92 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,7 @@
-<p align="center"><a href="https://jssip.net"><img src="https://jssip.net/images/jssip-banner-new.png"/></a></p>
+[![][npm-shield-jssip]][npm-jssip]
+[![][github-actions-shield-jssip]][github-actions-jssip]

-[![Build Status](https://api.travis-ci.com/versatica/JsSIP.png)](https://travis-ci.com/versatica/JsSIP)
-[![Code Quality: Javascript](https://img.shields.io/lgtm/grade/javascript/g/versatica/JsSIP.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/versatica/JsSIP/context:javascript)
-[![Total Alerts](https://img.shields.io/lgtm/alerts/g/versatica/JsSIP.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/versatica/JsSIP/alerts)
+<p align="center"><a href="https://jssip.net"><img src="https://jssip.net/images/jssip-banner-new.png"/></a></p>

 ## Overview

@@ -111,3 +110,8 @@ Check our **Tryit JsSIP** online demo:
 ## License

 JsSIP is released under the [MIT license](https://jssip.net/license).
+
+[npm-shield-jssip]: https://img.shields.io/npm/v/jssip.svg
+[npm-jssip]: https://npmjs.org/package/jssip
+[github-actions-shield-jssip]: https://github.com/versatica/jssip/actions/workflows/jssip.yaml/badge.svg
+[github-actions-jssip]: https://github.com/versatica/jssip/actions/workflows/jssip.yaml