From 7cb0dfd505ed67ac6b7965ad5d1523383deaea73 Mon Sep 17 00:00:00 2001
From: Jan Breuer <jan.breuer@jaybee.cz>
Date: 周一, 16 1月 2023 23:34:45 +0800
Subject: [PATCH] Merge branch 'feature/github-actions'

---
 .github/workflows/main.yml |   97 ++++++++++++++++++++++++++++++++++++++++++++++++
 README.md                  |    5 +-
 2 files changed, 99 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
new file mode 100644
index 0000000..5c49ed6
--- /dev/null
+++ b/.github/workflows/main.yml
@@ -0,0 +1,97 @@
+name: Build
+on: [push, pull_request]
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout@v2
+
+    - name: install_dependencies
+      run: sudo apt-get install libcunit1-dev clang
+
+    - name: make
+      run: make clean all test
+
+    - name: clang_sanitize_address
+      env:
+        CC: clang
+        CFLAGS: -g -O0 -fsanitize=address
+        LDFLAGS: -g -fsanitize=address
+      run: make clean test
+
+    - name: clang_sanitize_address_device_errors
+      env:
+        CC: clang
+        CFLAGS: -g -O0 -fsanitize=address -DUSE_DEVICE_DEPENDENT_ERROR_INFORMATION=0
+        LDFLAGS: -g -fsanitize=address
+      run: make clean test
+      
+    - name: clang_sanitize_address_nomalloc
+      env:
+        CC: clang
+        CFLAGS: -g -O0 -fsanitize=address -DUSE_MEMORY_ALLOCATION_FREE=0
+        LDFLAGS: -g -fsanitize=address
+      run: make clean test
+
+#    - name: gcc-c89
+#      env:
+#        CFLAGS: -std=c89
+#      run: make clean all test
+
+#    - name: gcc-c90
+#      env:
+#        CFLAGS: -std=c90
+#      run: make clean all test
+
+    - name: gcc-c99
+      env:
+        CFLAGS: -std=c99
+      run: make clean all test
+
+    - name: gcc-gnu99
+      env:
+        CFLAGS: -std=gnu99
+      run: make clean all test
+
+  build-arm:
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout@v2
+
+    - uses: uraimo/run-on-arch-action@v2
+      name: Run commands
+      id: runcmd
+      with:
+        arch: armv7
+        distro: ubuntu_latest
+        install: |
+          apt-get update -q -y
+          apt-get install -q -y build-essential libcunit1-dev
+        run: make clean all test
+      
+  coverage:
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout@v2
+
+    - name: install_dependencies
+      run: sudo apt-get install libcunit1-dev lcov
+
+    - name: coverage
+      env:
+        CFLAGS: -fprofile-arcs -ftest-coverage
+        LDFLAGS: -lgcov
+      run: make clean all test
+    
+    - name: lcov_capture
+      run: lcov --capture --directory libscpi/ --output-file lcov.info
+
+    - name: lcov_cleanup
+      run: lcov --remove lcov.info '*/test/*' --output-file lcov.info
+
+    - name: Coveralls
+      uses: coverallsapp/github-action@master
+      with:
+        github-token: ${{ secrets.GITHUB_TOKEN }}
+        path-to-lcov: ./lcov.info
diff --git a/README.md b/README.md
index 55f6059..f203ff2 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,8 @@
 SCPI parser library v2
 ===========
 
+![Build status](https://github.com/j123b567/scpi-parser/actions/workflows/main.yml/badge.svg) [![Coverage Status](https://coveralls.io/repos/j123b567/scpi-parser/badge.svg?branch=master&service=github)](https://coveralls.io/github/j123b567/scpi-parser?branch=master)
+
 Documentation
 --------
 Documentation is available at [http://j123b567.github.io/scpi-parser](http://j123b567.github.io/scpi-parser).
@@ -57,6 +59,3 @@
 <tr><td>Channel list<td><code>(@1!2:3!4,5!6)</code></tr>
 <tr><td>Character data<td><code>MINimum</code>, <code>DEFault</code>, <code>INFinity</code></tr>
 </table>
-
-
-[![travis build](https://travis-ci.org/j123b567/scpi-parser.svg?branch=master)](https://travis-ci.org/j123b567/scpi-parser) [![Coverage Status](https://coveralls.io/repos/j123b567/scpi-parser/badge.svg?branch=master&service=github)](https://coveralls.io/github/j123b567/scpi-parser?branch=master)

--
Gitblit v1.9.1