Skip to content

Commit

Permalink
remove mex files, add buliding to CI
Browse files Browse the repository at this point in the history
  • Loading branch information
mcg1969 committed Apr 10, 2024
1 parent 4a91f13 commit c642ba9
Show file tree
Hide file tree
Showing 172 changed files with 221 additions and 132 deletions.
298 changes: 177 additions & 121 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,132 +1,188 @@
name: Basic SeDuMi tests

# Controls when the action will run.
name: CI
on:
# Triggers the workflow on push or pull request events but only for the main branch
push:
branches: [ master ]
branches:
- master
tags:
- '*'
pull_request:
branches: [ master ]

workflow_dispatch:

branches:
- master
jobs:

matlab:
name: Matlab (latest) on Ubuntu (latest)
runs-on: ubuntu-latest

steps:
- name: Check out repository
uses: actions/checkout@v3

- name: Install MATLAB
uses: matlab-actions/setup-matlab@v1

- name: Run basic SeDuMi tests
uses: matlab-actions/run-command@v1
with:
command: cd examples; test_sedumi(1, 1);


macos-octave:
name: Octave (latest) on macOS (latest)
runs-on: macos-latest

build-mex:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04,windows-2019,macos-12,macos-14]
steps:
- name: Check out repository
uses: actions/checkout@v3

- name: Install Octave by homebrew
run: brew install octave

- name: Run basic SeDuMi tests
run: octave --eval "cd examples; test_sedumi(1, 1);"


windows-octave:
name: Octave (latest) on MS Windows (latest)
runs-on: windows-latest

- name: Retrieve the source code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install MATLAB
uses: matlab-actions/setup-matlab@v2
with:
release: ${{ matrix.os == 'macos-14' && 'R2023b' || ( matrix.os == 'windows-2019' && 'R2021b' || 'R2021a' ) }}
- name: Build and test
uses: matlab-actions/run-command@v2
with:
command: "install_sedumi -rebuild; cd examples; test_sedumi(1, 1)"
- name: Upload MATLAB MEX files
uses: actions/upload-artifact@v4
with:
name: mex-${{ matrix.os }}
path: "*.mex*"
build-oct:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04,windows-2019,macos-12,macos-14]
steps:
- name: Check out repository
uses: actions/checkout@v3

- name: Install Octave by Chocolatey
run: choco install octave.portable

- name: Run basic SeDuMi tests
run: octave-cli.exe --eval "cd examples; test_sedumi(1, 1);"


ubuntu-20_04-octave:
name: Octave 5.2.0 on Ubuntu 20.04
runs-on: ubuntu-20.04

- name: Retrieve the source code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Octave
shell: bash
run: |
if [ "${{ matrix.os }}" = ubuntu-20.04 ]; then
sudo apt update
sudo apt install --no-install-recommends octave liboctave-dev libopenblas-dev
elif [ "${{ matrix.os }}" = windows-2019 ]; then
choco install octave.portable
else
brew install octave
fi
- name: Build and test (Unix)
if: matrix.os != 'windows-2019'
run: octave --eval "install_sedumi -rebuild; test_sedumi(1, 1)"
- name: Build and test (Windows)
if: matrix.os == 'windows-2019'
shell: cmd
run: |
set PATH=C:\ProgramData\chocolatey\bin;%PATH%
octave-cli.exe --no-gui --eval "install_sedumi -rebuild; test_sedumi(1, 1)"
if %errorlevel% neq 0 exit /b %errorlevel%
- name: Upload Octave MEX files
uses: actions/upload-artifact@v4
with:
name: oct-${{ matrix.os }}
path: "*.mex"
package:
needs: [build-mex,build-oct]
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v3

- name: Install Octave
run: |
sudo apt-get -y update
sudo apt-get -y install octave liboctave-dev libopenblas-dev
- name: Run basic SeDuMi tests
run: octave --eval "cd examples; test_sedumi(1, 1);"


ubuntu-18_04-octave:
name: Octave 4.2.2 on Ubuntu 18.04
runs-on: ubuntu-18.04

- name: Retrieve the source code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Retrieve artifacts
uses: actions/download-artifact@v4
- name: Move artifacts into place
run: |
mkdir -p o_lin && mv oct-ubuntu-*/* o_lin/
mkdir -p o_win && mv oct-windows-*/* o_win/
mkdir -p o_maci && mv oct-macos-12/* o_maci/
mkdir -p o_maca && mv oct-macos-14/* o_maca/
mv mex-*/* .
rmdir mex-* oct-*
- name: Show files, build archives
run: |
cd ..
zip -r sedumi.zip sedumi -x 'sedumi/.git/*' -x 'sedumi/.github/*'
tar cfz sedumi.tgz --exclude "sedumi/.git" --exclude "sedumi/.github" sedumi
echo "--------"
tar tfz sedumi.tgz
echo "--------"
zipinfo sedumi.zip
echo "--------"
mv sedumi.tgz sedumi.zip sedumi
- name: Upload bundles
uses: actions/upload-artifact@v4
with:
name: bundles
path: |
sedumi.zip
sedumi.tgz
matlab-tests:
needs: package
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest,macos-latest,windows-latest,macos-14]
steps:
- name: Check out repository
uses: actions/checkout@v3

- name: Install Octave
run: |
sudo apt-get -y update
sudo apt-get -y install octave liboctave-dev libopenblas-dev
- name: Run basic SeDuMi tests
run: octave --eval "cd examples; test_sedumi(1, 1);"


flatpak-octave:
name: Octave (latest) on Flatpak (latest)
runs-on: ubuntu-latest

- name: Retrieve artifact
uses: actions/download-artifact@v4
with:
name: bundles
- name: Unpack artifact
run: tar xfz sdpt3.tgz --strip-components=1
- name: Install latest MATLAB
uses: matlab-actions/setup-matlab@v2
- name: Run test
uses: matlab-actions/run-command@v2
with:
command: "install_sedumi; cd examples; test_sedumi(1, 1)"
octave-tests:
needs: package
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest,windows-latest,macos-latest,macos-14]
steps:
- name: Check out repository
uses: actions/checkout@v3

- name: Install Octave
run: |
sudo apt-get -y update
sudo apt-get -y install flatpak
flatpak remote-add --user --if-not-exists \
flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user -y flathub org.octave.Octave
- name: Run basic SeDuMi tests
run: |
flatpak run org.octave.Octave --eval "cd examples; test_sedumi(1, 1);"
snap-octave:
name: Octave (latest) on Snap (latest)
- name: Retrieve artifact
uses: actions/download-artifact@v4
with:
name: bundles
- name: Unpack artifact
run: tar xfz sedumi.tgz --strip-components=1
- name: Install Octave, Snap, Flatpak
shell: bash
run: |
if [ "${{ matrix.os }}" = ubuntu-latest ]; then
sudo apt update
sudo apt install --no-install-recommends octave snapd flatpak
elif [ "${{ matrix.os }}" = windows-latest ]; then
choco install octave.portable
else
brew install octave
fi
- name: Run test
if: matrix.os != 'windows-latest'
run: octave --eval "install_sedumi; cd examples; test_sedumi(1, 1)"
- name: Run test
if: matrix.os == 'windows-latest'
shell: cmd
run: |
set PATH=C:\ProgramData\chocolatey\bin;%PATH%
octave-cli.exe --no-gui --eval "install_sedumi; cd examples; test_sedumi(1, 1)"
- name: Flatpak
if: matrix.os == 'ubuntu-latest'
run: |
flatpak remote-add --user --if-not-exists \
flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user -y flathub org.octave.Octave
flatpak run org.octave.Octave --eval "install_sedumi; cd examples; test_sedumi(1, 1)"
flatpak uninstall --user -y org.octave.Octave
- name: Snapd
if: matrix.os == 'ubuntu-latest'
run: |
sudo snap install octave
snap run octave --eval "install_sedumi; cd examples; test_sedumi(1, 1)"
sudo snap remove octave
publish:
needs: [matlab-tests,octave-tests]
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest

steps:
- name: Check out repository
uses: actions/checkout@v3

- name: Install Octave
run: |
sudo apt-get -y update
sudo apt-get -y install snapd
sudo snap install octave
- name: Run basic SeDuMi tests
run: snap run octave --eval "cd examples; test_sedumi(1, 1);"
- name: Retrieve artifacts
uses: actions/download-artifact@v4
with:
name: bundles
- uses: softprops/action-gh-release@v2
with:
files: |
sedumi.tgz
sedumi.zip
Binary file removed adendotd.mexa64
Binary file not shown.
Binary file removed adendotd.mexglx
Binary file not shown.
Binary file removed adendotd.mexmaci64
Binary file not shown.
Binary file removed adendotd.mexw32
Binary file not shown.
Binary file removed adendotd.mexw64
Binary file not shown.
Binary file removed adenscale.mexa64
Binary file not shown.
Binary file removed adenscale.mexglx
Binary file not shown.
Binary file removed adenscale.mexmaci64
Binary file not shown.
Binary file removed adenscale.mexw32
Binary file not shown.
Binary file removed adenscale.mexw64
Binary file not shown.
Binary file removed blkchol.mexa64
Binary file not shown.
Binary file removed blkchol.mexglx
Binary file not shown.
Binary file removed blkchol.mexmaci64
Binary file not shown.
Binary file removed blkchol.mexw32
Binary file not shown.
Binary file removed blkchol.mexw64
Binary file not shown.
Binary file removed bwblkslv.mexa64
Binary file not shown.
Binary file removed bwblkslv.mexglx
Binary file not shown.
Binary file removed bwblkslv.mexmaci64
Binary file not shown.
Binary file removed bwblkslv.mexw32
Binary file not shown.
Binary file removed bwblkslv.mexw64
Binary file not shown.
Binary file removed bwdpr1.mexa64
Binary file not shown.
Binary file removed bwdpr1.mexglx
Binary file not shown.
Binary file removed bwdpr1.mexmaci64
Binary file not shown.
Binary file removed bwdpr1.mexw32
Binary file not shown.
Binary file removed bwdpr1.mexw64
Binary file not shown.
Binary file removed cholsplit.mexa64
Binary file not shown.
Binary file removed cholsplit.mexglx
Binary file not shown.
Binary file removed cholsplit.mexmaci64
Binary file not shown.
Binary file removed cholsplit.mexw32
Binary file not shown.
Binary file removed cholsplit.mexw64
Binary file not shown.
Binary file removed choltmpsiz.mexa64
Binary file not shown.
Binary file removed choltmpsiz.mexglx
Binary file not shown.
Binary file removed choltmpsiz.mexmaci64
Binary file not shown.
Binary file removed choltmpsiz.mexw32
Binary file not shown.
Binary file removed choltmpsiz.mexw64
Binary file not shown.
Binary file removed ddot.mexa64
Binary file not shown.
Binary file removed ddot.mexglx
Binary file not shown.
Binary file removed ddot.mexmaci64
Binary file not shown.
Binary file removed ddot.mexw32
Binary file not shown.
Binary file removed ddot.mexw64
Binary file not shown.
Binary file removed dpr1fact.mexa64
Binary file not shown.
Binary file removed dpr1fact.mexglx
Binary file not shown.
Binary file removed dpr1fact.mexmaci64
Binary file not shown.
Binary file removed dpr1fact.mexw32
Binary file not shown.
Binary file removed dpr1fact.mexw64
Binary file not shown.
Binary file removed extractA.mexa64
Binary file not shown.
Binary file removed extractA.mexglx
Binary file not shown.
Binary file removed extractA.mexmaci64
Binary file not shown.
Binary file removed extractA.mexw32
Binary file not shown.
Binary file removed extractA.mexw64
Binary file not shown.
Binary file removed findblks.mexa64
Binary file not shown.
Binary file removed findblks.mexglx
Binary file not shown.
Binary file removed findblks.mexmaci64
Binary file not shown.
Binary file removed findblks.mexw32
Binary file not shown.
Binary file removed findblks.mexw64
Binary file not shown.
Binary file removed finsymbden.mexa64
Binary file not shown.
Binary file removed finsymbden.mexglx
Binary file not shown.
Binary file removed finsymbden.mexmaci64
Binary file not shown.
Binary file removed finsymbden.mexw32
Binary file not shown.
Binary file removed finsymbden.mexw64
Binary file not shown.
Binary file removed fwblkslv.mexa64
Binary file not shown.
Binary file removed fwblkslv.mexglx
Binary file not shown.
Binary file removed fwblkslv.mexmaci64
Binary file not shown.
Binary file removed fwblkslv.mexw32
Binary file not shown.
Binary file removed fwblkslv.mexw64
Binary file not shown.
Binary file removed fwdpr1.mexa64
Binary file not shown.
Binary file removed fwdpr1.mexglx
Binary file not shown.
Binary file removed fwdpr1.mexmaci64
Binary file not shown.
Binary file removed fwdpr1.mexw32
Binary file not shown.
Binary file removed fwdpr1.mexw64
Binary file not shown.
Binary file removed getada1.mexa64
Binary file not shown.
Binary file removed getada1.mexglx
Binary file not shown.
Binary file removed getada1.mexmaci64
Binary file not shown.
Binary file removed getada1.mexw32
Binary file not shown.
Binary file removed getada1.mexw64
Binary file not shown.
Binary file removed getada2.mexa64
Binary file not shown.
Binary file removed getada2.mexglx
Binary file not shown.
Binary file removed getada2.mexmaci64
Binary file not shown.
Binary file removed getada2.mexw32
Binary file not shown.
Binary file removed getada2.mexw64
Binary file not shown.
Binary file removed getada3.mexa64
Binary file not shown.
Binary file removed getada3.mexglx
Binary file not shown.
Binary file removed getada3.mexmaci64
Binary file not shown.
Binary file removed getada3.mexw32
Binary file not shown.
Binary file removed getada3.mexw64
Binary file not shown.
Binary file removed givensrot.mexa64
Binary file not shown.
Binary file removed givensrot.mexglx
Binary file not shown.
Binary file removed givensrot.mexmaci64
Binary file not shown.
Binary file removed givensrot.mexw32
Binary file not shown.
Binary file removed givensrot.mexw64
Binary file not shown.
Binary file removed incorder.mexa64
Binary file not shown.
Binary file removed incorder.mexglx
Binary file not shown.
Binary file removed incorder.mexmaci64
Binary file not shown.
Binary file removed incorder.mexw32
Binary file not shown.
Binary file removed incorder.mexw64
Binary file not shown.
Loading

0 comments on commit c642ba9

Please sign in to comment.