summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
authorBaruch Sterin <baruchs@gmail.com>2022-01-21 22:51:36 +0200
committerBaruch Sterin <baruchs@gmail.com>2022-01-22 18:34:43 +0200
commit554a1693ac2bd81169b28227ea718527136f5e7e (patch)
tree5c359e8506c2ba9ddcd49abdbb494377aca609b1 /.github
parent5b8fa41ba966271f97f99860b21eee83bf51e61a (diff)
downloadabc-554a1693ac2bd81169b28227ea718527136f5e7e.tar.gz
abc-554a1693ac2bd81169b28227ea718527136f5e7e.tar.bz2
abc-554a1693ac2bd81169b28227ea718527136f5e7e.zip
Move CI to GitHub Actions.
Also, a few minor changes that are required to compile ABC under moder compilers.
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/build-posix.yml62
-rw-r--r--.github/workflows/build-windows.yml48
2 files changed, 110 insertions, 0 deletions
diff --git a/.github/workflows/build-posix.yml b/.github/workflows/build-posix.yml
new file mode 100644
index 00000000..aa97aca2
--- /dev/null
+++ b/.github/workflows/build-posix.yml
@@ -0,0 +1,62 @@
+on: [push]
+
+jobs:
+
+ build-posix:
+ strategy:
+ matrix:
+ os: [macos-latest, ubuntu-latest]
+ use_namespace: [false, true]
+
+ runs-on: ${{ matrix.os }}
+
+ env:
+ MAKE_ARGS: ${{ matrix.use_namespace && 'ABC_USE_NAMESPACE=xxx' || '' }}
+ DEMO_ARGS: ${{ matrix.use_namespace && '-DABC_NAMESPACE=xxx' || '' }}
+ DEMO_GCC: ${{ matrix.use_namespace && 'g++ -x c++' || 'gcc' }}
+
+ steps:
+
+ - name: Git Checkout
+ uses: actions/checkout@v2
+ with:
+ submodules: recursive
+
+ - name: Install brew dependencies
+ run: |
+ HOMEBREW_NO_AUTO_UPDATE=1 brew install readline
+ if: ${{ contains(matrix.os, 'macos') }}
+
+ - name: Install APT dependencies
+ run: |
+ sudo apt install -y libreadline-dev
+ if: ${{ !contains(matrix.os, 'macos') }}
+
+ - name: Build Executable
+ run: |
+ make -j3 ${MAKE_ARGS} abc
+
+ - name: Test Executable
+ run: |
+ ./abc -c "r i10.aig; b; ps; b; rw -l; rw -lz; b; rw -lz; b; ps; cec"
+
+ - name: Build Library
+ run: |
+ make -j3 ${MAKE_ARGS} libabc.a
+
+ - name: Test Library
+ run: |
+ ${DEMO_GCC} ${DEMO_ARGS} -Wall -c src/demo.c -o demo.o
+ g++ -o demo demo.o libabc.a -lm -ldl -lreadline -lpthread
+ ./demo i10.aig
+
+ - name: Stage Executable
+ run: |
+ mkdir staging
+ cp abc libabc.a staging/
+
+ - name: Upload pacakge artifact
+ uses: actions/upload-artifact@v1
+ with:
+ name: package
+ path: staging/
diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml
new file mode 100644
index 00000000..6312780d
--- /dev/null
+++ b/.github/workflows/build-windows.yml
@@ -0,0 +1,48 @@
+on: [push]
+
+jobs:
+
+ build-windows:
+
+ runs-on: windows-latest
+
+ steps:
+
+ - name: Git Checkout
+ uses: actions/checkout@v2
+ with:
+ submodules: recursive
+
+ - name: Process project files to compile on Github Actions
+ run: |
+ sed -i 's#ABC_USE_PTHREADS\"#ABC_DONT_USE_PTHREADS\" /D \"_ALLOW_KEYWORD_MACROS=1\"#g' *.dsp
+ awk 'BEGIN { del=0; } /# Begin Group "uap"/ { del=1; } /# End Group/ { if( del > 0 ) {del=0; next;} } del==0 {print;} ' abclib.dsp > tmp.dsp
+ copy tmp.dsp abclib.dsp
+ del tmp.dsp
+ unix2dos *.dsp
+
+ - name: Prepare MSVC
+ uses: bus1/cabuild/action/msdevshell@v1
+ with:
+ architecture: x86
+
+ - name: Upgrade project files to latest Visual Studio, ignoring upgrade errors, and build
+ run: |
+ devenv abcspace.dsw /upgrade ; if (-not $? ) { cat UpgradeLog.htm }
+ msbuild abcspace.sln /m /nologo /p:Configuration=Release /p:PlatformTarget=x86
+
+ - name: Test Executable
+ run: |
+ _TEST\abc.exe -c "r i10.aig; b; ps; b; rw -l; rw -lz; b; rw -lz; b; ps; cec"
+
+ - name: Stage Executable
+ run: |
+ mkdir staging
+ copy _TEST/abc.exe staging/
+ copy UpgradeLog.htm staging/
+
+ - name: Upload pacakge artifact
+ uses: actions/upload-artifact@v1
+ with:
+ name: package
+ path: staging/