228 lines
8.0 KiB
YAML
228 lines
8.0 KiB
YAML
# This is a basic workflow to help you get started with Actions
|
|
|
|
name: CI-macos
|
|
|
|
# Controls when the workflow will run
|
|
on:
|
|
push:
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
|
jobs:
|
|
simple_build_macos12:
|
|
runs-on: macos-12
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Get Dependencies
|
|
shell: bash # default shell has unwanted broken pipe indication
|
|
run: |
|
|
brew install --cask xquartz
|
|
brew install cairo tcl-tk tcsh
|
|
echo "UNAME_M=$(uname -m)" >> $GITHUB_ENV
|
|
set +e
|
|
set +o pipefail # macosx this is on by default (turn it off)
|
|
(
|
|
echo "### $(uname -s) $(uname -m) $(uname -r)"
|
|
echo ""
|
|
set +e
|
|
set +o pipefail # macosx this is on by default (turn it off)
|
|
export HOMEBREW_NO_COLOR=true
|
|
export HOMEBREW_NO_EMOKI=true
|
|
# output to $TMPFILE first, then head, instead of using pipeline directly
|
|
# this removes unwanted GHA SIGPIPE error/warning indicators from GHA logs
|
|
# brew maybe a nodejs command which has a known issue in this area on macosx
|
|
TMPFILE=/tmp/shell0$$.tmp
|
|
brew info xquartz > $TMPFILE && head -n1 $TMPFILE
|
|
brew info cairo > $TMPFILE && head -n1 $TMPFILE
|
|
brew info tcl-tk > $TMPFILE && head -n1 $TMPFILE
|
|
brew info tcsh > $TMPFILE && head -n1 $TMPFILE
|
|
echo ""
|
|
cc -v 2>&1
|
|
echo ""
|
|
xcodebuild -version
|
|
echo ""
|
|
xcodebuild -showsdks | grep macOS
|
|
) >> $GITHUB_STEP_SUMMARY
|
|
|
|
- name: Search
|
|
run: |
|
|
set +e
|
|
( # designed to speed up this process in a single scan
|
|
echo "#!/bin/sh"
|
|
echo "echo \$*"
|
|
echo "ls -ld -- \$*"
|
|
echo "shasum -a 1 \$* </dev/null"
|
|
echo "echo \"\""
|
|
echo "exit 0"
|
|
) > search.sh
|
|
echo "=== search.sh"
|
|
cat search.sh
|
|
chmod a+x search.sh
|
|
find /opt /usr $HOME \( -iname "libX11.*dylib" -or -iname "Xlib.h" \) -exec ./search.sh {} \; 2>/dev/null
|
|
#
|
|
# Example symbols that were found missing from the tcl-tk X11 implementation
|
|
#find /opt /usr $HOME -iname "x*.h" -exec grep -Hn "XCreateGC" {} \; 2>/dev/null || true
|
|
#find /opt /usr $HOME -iname "x*.h" -exec grep -Hn "XGetVisualInfo" {} \; 2>/dev/null || true
|
|
#for i in /usr/X11/include/X11/Xlib.h /opt/X11/include/X11/Xlib.h /usr/local/include/X11/Xlib.h;
|
|
#do
|
|
# echo "====== $i"
|
|
# head -n 50 "$i"
|
|
# echo "==="
|
|
# tail -n 50 "$i"
|
|
# echo "======"
|
|
#done
|
|
echo "Done"
|
|
|
|
- name: Build
|
|
run: |
|
|
export PATH="/opt/X11/bin:$PATH"
|
|
./scripts/configure_mac
|
|
|
|
echo "===== defs.mak ====="
|
|
cat defs.mak
|
|
echo "===== defs.mak ====="
|
|
|
|
make database/database.h
|
|
make -j$(sysctl -n hw.ncpu)
|
|
|
|
- name: Install
|
|
run: |
|
|
sudo make install
|
|
|
|
- name: Kick The Tyres
|
|
run: |
|
|
set +e
|
|
echo "=== ls -l"
|
|
ls -l
|
|
echo "=== find /usr/local/bin"
|
|
find /usr/local/bin -mtime 0
|
|
echo "=== find /usr/local/share"
|
|
find /usr/local/share -mtime 0
|
|
echo "=== find /usr/local/lib/magic"
|
|
find /usr/local/lib/magic -mtime 0
|
|
echo "=== otool -L magic/tclmagic.dylib"
|
|
otool -L magic/tclmagic.dylib
|
|
echo "=== otool -L tcltk/magicexec"
|
|
otool -L tcltk/magicexec
|
|
echo "=== otool -L tcltk/magicdnull"
|
|
otool -L tcltk/magicdnull
|
|
echo "=== magic --version"
|
|
magic --version
|
|
echo "=== magic -d help -noconsole"
|
|
magic -d help -noconsole
|
|
echo "=== magic -d null -noconsole -nowindow -T scmos"
|
|
echo "version ; quit" | magic -d null -noconsole -nowindow -T scmos
|
|
echo "=== magic -d null -noconsole -T scmos"
|
|
echo "version ; quit" | magic -d null -noconsole -T scmos
|
|
|
|
simple_build_macos:
|
|
runs-on: macos-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Get Dependencies
|
|
shell: bash # default shell has unwanted broken pipe indication
|
|
run: |
|
|
brew install --cask xquartz
|
|
brew install cairo tcl-tk tcsh
|
|
echo "UNAME_M=$(uname -m)" >> $GITHUB_ENV
|
|
set +e
|
|
set +o pipefail # macosx this is on by default (turn it off)
|
|
(
|
|
echo "### $(uname -s) $(uname -m) $(uname -r)"
|
|
echo ""
|
|
set +e
|
|
set +o pipefail # macosx this is on by default (turn it off)
|
|
export HOMEBREW_NO_COLOR=true
|
|
export HOMEBREW_NO_EMOKI=true
|
|
# output to $TMPFILE first, then head, instead of using pipeline directly
|
|
# this removes unwanted GHA SIGPIPE error/warning indicators from GHA logs
|
|
# brew maybe a nodejs command which has a known issue in this area on macosx
|
|
TMPFILE=/tmp/shell0$$.tmp
|
|
brew info xquartz > $TMPFILE && head -n1 $TMPFILE
|
|
brew info cairo > $TMPFILE && head -n1 $TMPFILE
|
|
brew info tcl-tk > $TMPFILE && head -n1 $TMPFILE
|
|
brew info tcsh > $TMPFILE && head -n1 $TMPFILE
|
|
echo ""
|
|
cc -v 2>&1
|
|
echo ""
|
|
xcodebuild -version
|
|
echo ""
|
|
xcodebuild -showsdks | grep macOS
|
|
) >> $GITHUB_STEP_SUMMARY
|
|
|
|
- name: Search
|
|
run: |
|
|
set +e
|
|
( # designed to speed up this process in a single scan
|
|
echo "#!/bin/sh"
|
|
echo "echo \$*"
|
|
echo "ls -ld -- \$*"
|
|
echo "shasum -a 1 \$* </dev/null"
|
|
echo "echo \"\""
|
|
echo "exit 0"
|
|
) > search.sh
|
|
echo "=== search.sh"
|
|
cat search.sh
|
|
chmod a+x search.sh
|
|
find /opt /usr $HOME \( -iname "libX11.*dylib" -or -iname "Xlib.h" \) -exec ./search.sh {} \; 2>/dev/null
|
|
#
|
|
# Example symbols that were found missing from the tcl-tk X11 implementation
|
|
#find /opt /usr $HOME -iname "x*.h" -exec grep -Hn "XCreateGC" {} \; 2>/dev/null || true
|
|
#find /opt /usr $HOME -iname "x*.h" -exec grep -Hn "XGetVisualInfo" {} \; 2>/dev/null || true
|
|
#for i in /usr/X11/include/X11/Xlib.h /opt/X11/include/X11/Xlib.h /usr/local/include/X11/Xlib.h;
|
|
#do
|
|
# echo "====== $i"
|
|
# head -n 50 "$i"
|
|
# echo "==="
|
|
# tail -n 50 "$i"
|
|
# echo "======"
|
|
#done
|
|
echo "Done"
|
|
|
|
- name: Build
|
|
run: |
|
|
export PATH="/opt/X11/bin:$PATH"
|
|
./scripts/configure_mac
|
|
|
|
echo "===== defs.mak ====="
|
|
cat defs.mak
|
|
echo "===== defs.mak ====="
|
|
|
|
make database/database.h
|
|
make -j$(sysctl -n hw.ncpu)
|
|
|
|
- name: Install
|
|
run: |
|
|
sudo make install
|
|
|
|
- name: Kick The Tyres
|
|
run: |
|
|
set +e
|
|
echo "=== ls -l"
|
|
ls -l
|
|
echo "=== find /usr/local/bin"
|
|
find /usr/local/bin -mtime 0
|
|
echo "=== find /usr/local/share"
|
|
find /usr/local/share -mtime 0
|
|
echo "=== find /usr/local/lib/magic"
|
|
find /usr/local/lib/magic -mtime 0
|
|
echo "=== otool -L magic/tclmagic.dylib"
|
|
otool -L magic/tclmagic.dylib
|
|
echo "=== otool -L tcltk/magicexec"
|
|
otool -L tcltk/magicexec
|
|
echo "=== otool -L tcltk/magicdnull"
|
|
otool -L tcltk/magicdnull
|
|
echo "=== magic --version"
|
|
magic --version
|
|
echo "=== magic -d help -noconsole"
|
|
magic -d help -noconsole
|
|
echo "=== magic -d null -noconsole -nowindow -T scmos"
|
|
echo "version ; quit" | magic -d null -noconsole -nowindow -T scmos
|
|
echo "=== magic -d null -noconsole -T scmos"
|
|
echo "version ; quit" | magic -d null -noconsole -T scmos
|