Skip to content

manylinux (#86)

manylinux (#86) #50

Workflow file for this run

name: Production Builds
on:
push:
branches: [ master ]
workflow_dispatch:
jobs:
build:
# Build on Linux, Windows and MacOS
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- if: matrix.os == 'windows-latest'
run: bash -c "rm /bin/link" # interferes with cl/link.exe
- if: matrix.os == 'windows-latest'
uses: ilammy/msvc-dev-cmd@v1
with:
arch: amd64
- if: matrix.os == 'windows-latest'
shell: cmd
env:
MKN_CL_PREFERRED: 1
KUL_GIT_CO: --depth 1
run: |
bash -c ./res/ci/win_build.sh
mkn build -dtKOg 0 -a "-std:c++17 -EHsc"
- if: matrix.os == 'ubuntu-latest'
env:
MKN_GCC_PREFERRED: 1
KUL_GIT_CO: --depth 1
run: |
make nix
KLOG=3 ./mkn build -dtKa "-std=c++17 -fPIC" -O 2 -g 0 -W 9 -o mkn_nix
- if: matrix.os == 'macos-latest'
env:
KUL_GIT_CO: --depth 1
run: |
make bsd
KLOG=3 ./mkn build -dtKOW 9 -g 0 -a "-std=c++17 -fPIC" -o mkn_osx
- if: matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@v3
with:
name: maiken-${{ matrix.os }}
path: bin/build/mkn_nix
retention-days: 1
- if: matrix.os == 'windows-latest'
uses: actions/upload-artifact@v3
with:
name: maiken-${{ matrix.os }}
path: bin/build/mkn.exe
retention-days: 1
- if: matrix.os == 'macos-latest'
uses: actions/upload-artifact@v3
with:
name: maiken-${{ matrix.os }}
path: bin/build/mkn_osx
retention-days: 1
build_many_linux:
runs-on: ubuntu-latest
container: quay.io/pypa/manylinux2014_x86_64
steps:
- uses: actions/checkout@v3
- run: make nix
- env:
MKN_GCC_PREFERRED: 1
KUL_GIT_CO: --depth 1
run: |
KLOG=3 ./mkn build -dtKa "-std=c++17 -fPIC" -O 2 -g 0 -W 9 -o mkn_manylinux
- uses: actions/upload-artifact@v3
with:
name: maiken-manylinux-latest
path: bin/build/mkn_manylinux
retention-days: 1
release:
name: "Prelease"
needs: [build, build_many_linux]
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v3
- name: Display fetched artifacts
run: ls -R
- name: Emit a Github Release
uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "latest"
prerelease: true
title: "Development Build"
files: |
maiken-windows-latest/mkn.exe
maiken-macos-latest/mkn_osx
maiken-ubuntu-latest/mkn_nix
maiken-manylinux-latest/mkn_manylinux