Skip to content

Commit

Permalink
testing macos-14 release
Browse files Browse the repository at this point in the history
  • Loading branch information
d3v-null committed Mar 15, 2024
1 parent 9c70d8b commit ee7917a
Showing 1 changed file with 194 additions and 46 deletions.
240 changes: 194 additions & 46 deletions .github/workflows/releases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,109 +6,257 @@ on:
tags:
- "v*"

env:
env:
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0

jobs:
build-linux-release:
name: Build release for Linux
runs-on: ubuntu-latest

steps:
- name: Checkout sources
uses: actions/checkout@v3

- name: Build mwalib
uses: docker://mwatelescope/maturin:latest
with:
entrypoint: /bin/bash
args: .github/workflows/build.sh

- name: Upload tarball
uses: actions/upload-artifact@v2
with:
name: linux.tar.gz
path: "*.tar.gz"
if-no-files-found: error

build-macos-release:
name: Build release for MacOS
runs-on: macos-latest
build-release:
name: Build release for ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macOS-latest, macOS-14]

steps:
- name: Checkout sources
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: (macos) install automake and autoconf
if: ${{ startsWith(matrix.os, 'macOS') }}
run: |
brew install automake autoconf
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
override: true

- name: Add Python 3.8
uses: actions/setup-python@v2
uses: actions/setup-python@v5
continue-on-error: true
with:
python-version: "3.8"
architecture: "x64"

- name: Add Python 3.9
uses: actions/setup-python@v2
uses: actions/setup-python@v5
continue-on-error: true
with:
python-version: "3.9"
architecture: "x64"

- name: Add Python 3.10
uses: actions/setup-python@v2
uses: actions/setup-python@v5
continue-on-error: true
with:
python-version: "3.10"
architecture: "x64"

- name: Add Python 3.11
uses: actions/setup-python@v2
uses: actions/setup-python@v5
continue-on-error: true
with:
python-version: "3.11"
architecture: "x64"

- name: Add Python 3.12
uses: actions/setup-python@v2
uses: actions/setup-python@v5
continue-on-error: true
with:
python-version: "3.12"
architecture: "x64"

- name: Build mwalib
run: ./.github/workflows/build.sh
shell: bash
- name: install cfitsio
run: |
cd /tmp
curl "https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio-3.49.tar.gz" -o cfitsio.tar.gz
tar -xf cfitsio.tar.gz
rm cfitsio.tar.gz
cd cfitsio-3.49
./configure --prefix=/usr/local --enable-reentrant --disable-curl
sudo make shared
sudo make install
cd ..
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
sudo ldconfig
fi
- name: install maturin
run: |
python -m pip install --upgrade pip
python -m pip install maturin # [patchelf] ?
- name: build mwalib
env:
MWALIB_LINK_STATIC_CFITSIO: 1
run: |
export ARCH="$(uname -m)"
case $ARCH in
"x86_64")
export TARGETS="x86-64 x86-64-v2 x86-64-v3"
;;
"arm64")
export TARGETS="arm64"
;;
esac
for TARGET in $TARGETS; do
echo "building target $TARGET"
export RUSTFLAGS="-C target-cpu=$TARGET"
# Build python first
maturin build --release --features python --strip
# Build C objects
cargo build --release --features examples
# Create new release asset tarballs
mv target/wheels/*.whl target/release/libmwalib.{a,so,dylib} include/mwalib.h .
done
tar -acvf mwalib-$(git describe --tags)-linux-$ARCH.tar.gz \
LICENSE LICENSE-cfitsio README.md CHANGELOG.md \
libmwalib.{a,so,dylib} mwalib.h
tar -acvf mwalib-$(git describe --tags)-linux-python-$ARCH.tar.gz \
LICENSE LICENSE-cfitsio README.md CHANGELOG.md \
./*.whl
- name: Upload tarball
uses: actions/upload-artifact@v2
with:
name: macos.tar.gz
name: ${{ matrix.os }}.tar.gz
path: "*.tar.gz"
if-no-files-found: error

create-release:
name: Create a new release
runs-on: ubuntu-latest
needs: [build-linux-release, build-macos-release]
needs: [build-release]
steps:
- name: Download Linux artifact
uses: actions/download-artifact@v2
with:
name: linux.tar.gz
name: ubuntu-latest.tar.gz

- name: Download Linux artifact
- name: Download MacOS x86_64 artifact
uses: actions/download-artifact@v2
with:
name: macOS-latest.tar.gz

- name: Download MacOS arm64 artifact
uses: actions/download-artifact@v2
with:
name: macos.tar.gz
name: macOS-14.tar.gz

- name: Provide new release asset
uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
prerelease: false
files: |
*.tar.gz
*.tar.gz
# build-macos-release:
# name: Build release for MacOS
# runs-on: macos-latest

# steps:
# - name: Checkout sources
# uses: actions/checkout@v3
# with:
# fetch-depth: 0

# - name: Install stable toolchain
# uses: actions-rs/toolchain@v1
# with:
# profile: minimal
# toolchain: stable
# override: true

# - name: Add Python versions
# uses: actions/setup-python@v2
# with:
# python-version: |
# "3.8"
# "3.9"
# "3.10"
# "3.11"
# "3.12"
# architecture: "x64"

# - name: Build mwalib
# run: ./.github/workflows/build.sh
# shell: bash

# - name: Upload tarball
# uses: actions/upload-artifact@v2
# with:
# name: macos-x86_64.tar.gz
# path: "*.tar.gz"
# if-no-files-found: error

# build-apple-silicon-release:
# name: Build release for Apple Sillycon
# runs-on: macos-14
# steps:
# - name: Show env
# run: set -x; env; uname -m; uname -s

# - name: Checkout sources
# uses: actions/checkout@v3
# with:
# fetch-depth: 0

# - name: Install stable toolchain
# uses: actions-rs/toolchain@v1
# with:
# profile: minimal
# toolchain: stable
# override: true

# - name: Add Python versions
# uses: actions/setup-python@v2
# with:
# python-version: |
# "3.10"
# "3.11"
# "3.12"
# architecture: "x64"

# - name: show env
# run: whereis python

# - name: Build mwalib
# run: ./.github/workflows/build.sh
# shell: bash

# - name: Upload tarball
# uses: actions/upload-artifact@v2
# with:
# name: macos-arm64.tar.gz
# path: "*.tar.gz"
# if-no-files-found: error

# create-release:
# name: Create a new release
# runs-on: ubuntu-latest
# needs: [build-linux-release, build-macos-release, build-apple-silicon-release]
# steps:
# - name: Download Linux artifact
# uses: actions/download-artifact@v2
# with:
# name: linux.tar.gz

# - name: Download MacOS x86_64 artifact
# uses: actions/download-artifact@v2
# with:
# name: macos-x86_64.tar.gz

# - name: Download MacOS arm64 artifact
# uses: actions/download-artifact@v2
# with:
# name: macos-arm64.tar.gz

# - name: Provide new release asset
# uses: "marvinpinto/action-automatic-releases@latest"
# with:
# repo_token: "${{ secrets.GITHUB_TOKEN }}"
# prerelease: false
# files: |
# *.tar.gz

0 comments on commit ee7917a

Please sign in to comment.