Skip to content

github workflow

github workflow #17

name: Build and Package - MacOS (reusable)
on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:
jobs:
build-hnsd:
runs-on: macos-latest
steps:
- name: Checkout hnsd repository
uses: actions/checkout@v4
with:
repository: 'handshake-org/hnsd'
ref: master
- name: Install dependencies
run: brew install automake autoconf libtool unbound
- name: Build hnsd
run: |
./autogen.sh && ./configure --with-unbound=$(brew --prefix) && make
ls -l
- name: Store hnsd binary
uses: actions/upload-artifact@v4
with:
name: hnsd-bin-${{inputs.os}}
path: ./hnsd
if-no-files-found: error
build-fingertip:
needs: build-hnsd
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install go
uses: actions/setup-go@v5
with:
go-version: '1.21'
- name: Install dependencies
run: brew install dylibbundler git automake autoconf libtool getdns
- name: Verify getdns installation
run: |
echo $(brew --prefix getdns)
ls -l $(brew --prefix getdns)/include/getdns
ls -l $(brew --prefix getdns)/lib
- name: Set environment variables
run: |
export BREW_PREFIX=$(brew --prefix getdns)
echo "BREW_PREFIX=$BREW_PREFIX" >> $GITHUB_ENV
echo $GITHUB_ENV
- name: Download hnsd binary
uses: actions/download-artifact@v4
with:
name: hnsd-bin-${{inputs.os}}
path: builds/macos/Fingertip.app/Contents/MacOS
- name: Build fingertip
run: |
source $GITHUB_ENV
export CGO_CFLAGS="-I$BREW_PREFIX/include"
export CGO_LDFLAGS="-L$BREW_PREFIX/lib -lgetdns"
echo $CGO_CFLAGS
echo $CGO_LDFLAGS
chmod +x builds/macos/Fingertip.app/Contents/MacOS/hnsd
dylibbundler -od -b -x builds/macos/Fingertip.app/Contents/MacOS/hnsd -d builds/macos/Fingertip.app/Contents/Frameworks -p @executable_path/../Frameworks/
./builds/macos/build.sh
ls -l builds/macos
ls -l builds/macos/Fingertip.app/Contents/MacOS
- name: Create DMG
working-directory: ./builds/macos
run: |
hdiutil create -format UDZO -srcfolder ./Fingertip.app ./Fingertip.dmg
ls -l
- name: Store fingertip binary
uses: actions/upload-artifact@v4
with:
name: fingertip-bin-${{inputs.os}}
path: ./builds/macos/Fingertip.app/Contents/MacOS/fingertip
if-no-files-found: error
- name: Store fingertip dmg
uses: actions/upload-artifact@v4
with:
name: fingertip-dmg-${{inputs.os}}
path: ./builds/macos/Fingertip.dmg
if-no-files-found: error