Commit 06b14b8988 for strongswan.org

commit 06b14b89886b22d1f2d5badfdf21460296749dcc
Author: Tobias Brunner <tobias@strongswan.org>
Date:   Fri Apr 17 10:27:48 2026 +0200

    cirrus/github: Move CI for FreeBSD from Cirrus CI to GitHub Actions

    Cirrus CI will shut down in June, so we have to find a replacement to
    test our build on FreeBSD.  This uses VMs on GitHub Actions.

diff --git a/.cirrus.yml b/.cirrus.yml
index 8d7809b248..192320365c 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -1,22 +1,3 @@
-freebsd_task:
-  matrix:
-    - name: FreeBSD 15.0
-      freebsd_instance:
-        image_family: freebsd-15-0-amd64-ufs
-    - name: FreeBSD 14.3
-      freebsd_instance:
-        image_family: freebsd-14-3
-
-  env:
-    TESTS_REDUCED_KEYLENGTHS: yes
-    LEAK_DETECTIVE: no
-    MONOLITHIC: no
-    TEST: freebsd
-    OS_NAME: freebsd
-
-  install_script: ./scripts/test.sh deps
-  script: ./scripts/test.sh
-
 alpine_task:
   container:
     image: alpine:latest
diff --git a/.github/workflows/freebsd.yml b/.github/workflows/freebsd.yml
new file mode 100644
index 0000000000..c7a27a844f
--- /dev/null
+++ b/.github/workflows/freebsd.yml
@@ -0,0 +1,50 @@
+name: FreeBSD
+
+on: [push, pull_request]
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.ref }}
+  cancel-in-progress: true
+
+env:
+  TESTS_REDUCED_KEYLENGTHS: yes
+  LEAK_DETECTIVE: no
+  MONOLITHIC: no
+  TEST: freebsd
+  OS_NAME: freebsd
+
+jobs:
+  pre-check:
+    runs-on: ubuntu-latest
+    outputs:
+      should_skip: ${{ steps.skip-check.outputs.should_skip }}
+    steps:
+      - id: skip-check
+        uses: fkirc/skip-duplicate-actions@master
+        with:
+          concurrent_skipping: 'same_content_newer'
+
+  freebsd:
+    needs: pre-check
+    if: ${{ needs.pre-check.outputs.should_skip != 'true' }}
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        release: [ "15.0", "14.4" ]
+    steps:
+      - uses: actions/checkout@v6
+      - uses: vmactions/freebsd-vm@v1
+        with:
+          release: ${{ matrix.release }}
+          envs: 'TESTS_REDUCED_KEYLENGTHS LEAK_DETECTIVE MONOLITHIC TEST OS_NAME'
+          disable-cache: true
+          prepare: |
+            ./scripts/test.sh deps
+          run: |
+            ./scripts/test.sh
+      - if: ${{ failure() }}
+        uses: actions/upload-artifact@v6
+        with:
+          name: Logs ${{ github.job }}
+          path: config.log
+          retention-days: 5