trying to get artifacts right #86
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: automatic-release | |
on: | |
push: | |
branches: | |
- main | |
# schedule: | |
# # * is a special character in YAML so you have to quote this string | |
# - cron: '0 0 * * 6' | |
jobs: | |
rules-headers-tests: | |
name: zip up the rules directory | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Build Rust Library | |
run: | | |
# doesn't need a release build since all that we want is the Rules dir and the .h files | |
cargo build --target x86_64-unknown-linux-gnu | |
- name: create rules.zip | |
uses: thedoctor0/[email protected] | |
with: | |
type: 'zip' | |
filename: 'Rules.zip' | |
directory: 'Example' | |
path: 'Rules' | |
- name: Upload Rules.zip | |
uses: actions/upload-artifact@v4 | |
with: | |
name: 'Rules.zip' | |
path: 'Example/Rules.zip' | |
compression-level: 0 | |
retention-days: 1 | |
- name: Remove Rules dir in prep for uploading test and .h files | |
run: | | |
rm -r Example/Rules | |
ls -l | |
- name: Upload Example Dir (.h files, test files) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: headers-and-tests | |
path: Example | |
compression-level: 0 | |
retention-days: 1 | |
rust-32-win: | |
name: Build 32 bit windows dll | |
runs-on: windows-latest # needs to run on windows because of bzip2 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Build 32 bit version | |
run: cargo build --target i686-pc-windows-msvc --release | |
# HOW DO I GET A 32 BIT GCC TO RUN? | |
- name: Setup Example dir and test build | |
run: | | |
cp target/i686-pc-windows-msvc/release/libmathcat_c.dll Example/ | |
cd Example | |
# gcc -m32 test.cpp -o test -L. -llibmathcat_c | |
# ./test.exe | |
# gcc test.c -o test -L. -llibmathcat_c | |
# ./test.exe | |
- name: create zip file for dll file -- this allows the name to indicate arch, python version, etc., but unzipped it is correctly named | |
uses: thedoctor0/[email protected] | |
with: | |
type: 'zip' | |
filename: '../libmathcat_c.dll-32-win.zip' | |
directory: 'Example' | |
path: 'libmathcat_c.dll' | |
- name: Upload 32 bit pyd file | |
uses: actions/upload-artifact@v4 | |
with: | |
name: libmathcat_c.dll-32-win.zip | |
path: libmathcat_c.dll-32-win.zip | |
compression-level: 0 | |
retention-days: 1 | |
rust-64-win: | |
name: Build 64 bit windows dll | |
runs-on: windows-latest # needs to run on windows because of bzip2 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Build 64 bit version | |
run: cargo build --target x86_64-pc-windows-msvc --release | |
# | |
- name: Setup Example dir and test build | |
run: | | |
cp target/x86_64-pc-windows-msvc/release/libmathcat_c.dll Example/ | |
cd Example | |
gcc test.cpp -o test -L. -llibmathcat_c | |
./test.exe | |
gcc test.c -o test -L. -llibmathcat_c | |
./test.exe | |
- name: create zip file for dll file -- this allows the name to indicate arch, python version, etc., but unzipped it is correctly named | |
uses: thedoctor0/[email protected] | |
with: | |
type: 'zip' | |
filename: '../libmathcat_c.dll-64-win.zip' | |
directory: 'Example' | |
path: 'libmathcat_c.dll' | |
- name: Upload 64 bit pyd file | |
uses: actions/upload-artifact@v4 | |
with: | |
name: libmathcat_c.dll-64-win.zip | |
path: libmathcat_c.dll-64-win.zip | |
compression-level: 0 | |
retention-days: 1 | |
rust-64-arm-win: | |
name: Build 64 bit arm windows dll | |
runs-on: windows-latest # needs to run on windows because of bzip2 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Build 64 bit version | |
run: | | |
rustup target add aarch64-pc-windows-msvc | |
cargo build --target aarch64-pc-windows-msvc --release | |
# HOW DO I GET A ARM GCC TO RUN? | |
- name: Setup Example dir and test build | |
run: | | |
cp target/aarch64-pc-windows-msvc/release/libmathcat_c.dll Example/ | |
cd Example | |
# gcc test.cpp -o test -L. -llibmathcat_c | |
# ./test.exe | |
# gcc test.c -o test -L. -llibmathcat_c | |
# ./test.exe | |
- name: create zip file for dll file -- this allows the name to indicate arch, python version, etc., but unzipped it is correctly named | |
uses: thedoctor0/[email protected] | |
with: | |
type: 'zip' | |
filename: '../libmathcat_c.dll-64-arm.zip' | |
directory: 'Example' | |
path: 'libmathcat_c.dll' | |
- name: Upload 64 bit pyd file | |
uses: actions/upload-artifact@v4 | |
with: | |
name: libmathcat_c.dll-64-armn.zip | |
path: libmathcat_c.dll-64-arm.zip | |
compression-level: 0 | |
retention-days: 1 | |
pre-release: | |
name: Pre Release | |
continue-on-error: false | |
needs: [rules-headers-tests, rust-32-win, rust-64-win, rust-64-arm-win] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
# download the previous build artifacts and put them in their proper places | |
- name: Download Rules.zip | |
uses: actions/download-artifact@v4 | |
with: | |
name: Rules.zip | |
- name: Download 2 header files and 2 test files | |
uses: actions/download-artifact@v4 | |
with: | |
name: headers-and-tests | |
- name: Download 32 bit build | |
uses: actions/download-artifact@v4 | |
with: | |
name: libmathcat_c.dll-32-win.zip | |
- name: Download 64 bit build | |
uses: actions/download-artifact@v4 | |
with: | |
name: libmathcat_c.dll-64-win.zip | |
- name: Download 64 bit linux build | |
uses: actions/download-artifact@v4 | |
with: | |
name: libmathcat_c.dll-64-armn.zip | |
- name: Automatic release | |
uses: marvinpinto/action-automatic-releases@latest | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
automatic_release_tag: latest | |
prerelease: true | |
title: Development Build | |
files: | | |
libmathcat*.zip | |
Rules.zip | |
Example |