Skip to content

Release macOS

Release macOS #17

name: Release macOS
# on:
# push:
# tags:
# - "*"
on: [create, workflow_dispatch]
env:
LWMBS_LIBRARIES: libssh2,curl,zlib,openssl,libzip,bzip2,nghttp2,onig,libyaml,xz,libxml2
LWMBS_EXTENSIONS: iconv,dom,xml,xmlwriter,xmlreader,opcache,bcmath,phar,mbstring,mbregex,session,ctype,fileinfo,filter,tokenizer,curl,redis,sockets,openssl,zip,zlib,bz2,yaml,posix,pcntl,sysvshm,sysvsem,sysvmsg
jobs:
build:
name: PHP ${{ matrix.phpVer }} macOS ${{ matrix.arch }}
runs-on: macos-latest
permissions:
contents: write
strategy:
fail-fast: false
matrix:
phpVer: ["8.2"]
arch: ["x86_64", "arm64"]
max-parallel: 6
env:
tar: "php-${{ matrix.phpVer }}-macos-${{ matrix.arch }}.tar.gz"
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Calc sources hash
id: src_hash
run: |
printf 'hash=' >> $GITHUB_OUTPUT
GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} php fetch_source.php \
"${{ env.LWMBS_LIBRARIES }}" \
"${{ env.LWMBS_EXTENSIONS }}" \
--phpVer=${{ matrix.phpVer }} \
--hash >> $GITHUB_OUTPUT
echo
- name: Cache libraries
uses: actions/cache@v3
id: cache
with:
path: |
build/src
build/downloads
build/lib
build/include
key: macos-${{ matrix.arch }}-v3-${{ steps.src_hash.outputs.hash }}
- name: Make dirs
run: |
mkdir -p build
mkdir -p micro/licenses
- name: Prepare brew
run: brew install bison re2c automake autoconf pkg-config cmake
- name: Prepare tools and sources
working-directory: build
run: |
GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} php ${GITHUB_WORKSPACE}/fetch_source.php \
"${{ env.LWMBS_LIBRARIES }}" \
"${{ env.LWMBS_EXTENSIONS }}" \
--phpVer=${{ matrix.phpVer }} \
--shallowClone
php ${GITHUB_WORKSPACE}/dump_licenses.php ${GITHUB_WORKSPACE}/micro/licenses
- name: Prepare libraries
if: steps.cache.outputs.cache-hit != 'true'
working-directory: build
run: |
export PATH="/usr/local/opt/bison/bin:/usr/local/opt/re2c/bin:$PATH"
php ${GITHUB_WORKSPACE}/build_libs.php \
"${{ env.LWMBS_LIBRARIES }}" \
--arch=${{ matrix.arch }}
- name: Build micro
id: micro
working-directory: build
run: |
export PATH="/usr/local/opt/bison/bin:/usr/local/opt/re2c/bin:$PATH"
php ${GITHUB_WORKSPACE}/build_micro.php \
"${{ env.LWMBS_LIBRARIES }}" \
"${{ env.LWMBS_EXTENSIONS }}" \
--arch=${{ matrix.arch }}
cp src/php-src/sapi/micro/micro.sfx src/php-src/sapi/micro/micro.sfx.dwarf ${GITHUB_WORKSPACE}/micro
cd ${GITHUB_WORKSPACE}/micro
mv micro.sfx micro-macos-${{ matrix.arch }}.sfx
mv micro.sfx.dwarf micro-macos-${{ matrix.arch }}.sfx.dwarf
cd -
- name: Tar micro
run: |
tar -zcvf ${{ env.tar }} micro
mkdir -p tar
mv ${{ env.tar }} tar
ls tar
- name: Upload artifacts
uses: ncipollo/release-action@v1
with:
allowUpdates: true
artifacts: >
tar/*.tar.gz
token: ${{ secrets.GITHUB_TOKEN }}