Skip to content

ci: add release workflow to include ittapi wheels in release package … #21

ci: add release workflow to include ittapi wheels in release package …

ci: add release workflow to include ittapi wheels in release package … #21

Workflow file for this run

name: Create release
on:
push:
tags:
- '*'
permissions:
contents: read
jobs:
build:
name: Build libraries
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
optional_args: -pt
- os: windows-latest
optional_args: -pt --cmake_gen ninja
- os: macos-latest
steps:
- name: Checkout sources
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Config environment
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install gcc-multilib
- name: Setup Fortran compiler
uses: fortran-lang/setup-fortran@8821f57b53846d35d62632eb51c60ac6c4bff4ce # v1.6.1
with:
compiler: intel
- name: Build C library
run: python buildall.py -ft ${{ matrix.optional_args }}
- name: Display structure of files
run: ls -R
- name: Upload artifact
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
with:
name: build-artifacts-${{ matrix.os }}
path: |
build*/**/bin
build*/**/fortran
# build wheels only for cpython versions 3.8-3.12 on linux and windows 64-bits
python_build:
name: Build ittapi wheels
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
cibw_skip_args: "*_i686 *-musllinux_* cp313-*"
- os: windows-latest
cibw_skip_args: "*-win32 *_i686 cp313-*"
steps:
- name: Checkout sources
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Install cibuildwheels
run: python -m pip install cibuildwheel==2.20.0
- name: Build ittapi python wheels
run: python -m cibuildwheel python --output-dir python_dist/${{ runner.os }}
env:
CIBW_BUILD: cp3*
CIBW_SKIP: ${{ matrix.cibw_skip_args }}
- name: Upload artifact
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
with:
name: build-artifacts-python-${{ matrix.os }}
path: python_dist*/**
create_release:
permissions:
contents: write # for actions/create-release to create a release
name: Create release
runs-on: ubuntu-latest
needs: [build, python_build]
steps:
- name: Checkout sources
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Create release
id: create_release
uses: actions/create-release@0cb9c9b65d5d1901c1f53e5e66eaf4afd303e70e # v1.1.4
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: release ${{ github.ref_name }}
draft: false
prerelease: false
- name: Download artifacts
uses: actions/download-artifact@6b208ae046db98c579e8a3aa621ab581ff575935 # v4.1.1
with:
path: build-artifacts
pattern: build-artifacts-*
merge-multiple: true
- name: Display structure of downloaded files
run: ls -R
- name: Zip files
run: |
zip -r ittapi_build_${{ github.ref_name }}.zip include &&
cd build-artifacts &&
zip -rg ../ittapi_build_${{ github.ref_name }}.zip build*/**/bin build*/**/fortran python_dist &&
cd -
- name: Upload release asset
id: upload-release-asset
uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 # v1.0.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./ittapi_build_${{ github.ref_name }}.zip
asset_name: ittapi_build_${{ github.ref_name }}.zip
asset_content_type: application/zip