Skip to content

trying to get artifacts right #87

trying to get artifacts right

trying to get artifacts right #87

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 Example
- 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