diff --git a/.github/workflows/build-macos-arm.yml b/.github/workflows/build-macos-arm.yml new file mode 100644 index 00000000..70471848 --- /dev/null +++ b/.github/workflows/build-macos-arm.yml @@ -0,0 +1,98 @@ +name: Build and Package - MacOS (arm) + +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-${{runner.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 getdns + + + - 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-${{runner.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 + ./builds/macos/build.sh + ls -l builds/macos + ls -l builds/macos/Fingertip.app/Contents/MacOS + ls -l builds/macos/Fingertip.app/Contents/Frameworks + + - 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-${{runner.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-${{runner.os}} + path: ./builds/macos/Fingertip.dmg + if-no-files-found: error diff --git a/.github/workflows/build-macos-reusable.yml b/.github/workflows/build-macos-x86-64.yml similarity index 85% rename from .github/workflows/build-macos-reusable.yml rename to .github/workflows/build-macos-x86-64.yml index 608539c5..71d523f4 100644 --- a/.github/workflows/build-macos-reusable.yml +++ b/.github/workflows/build-macos-x86-64.yml @@ -1,4 +1,4 @@ -name: Build and Package - MacOS (reusable) +name: Build and Package - MacOS (x86-64) on: push: @@ -11,7 +11,7 @@ on: jobs: build-hnsd: - runs-on: macos-latest + runs-on: macos-13 steps: - name: Checkout hnsd repository @@ -37,7 +37,7 @@ jobs: build-fingertip: needs: build-hnsd - runs-on: macos-latest + runs-on: macos-13 steps: - name: Checkout repository @@ -77,9 +77,7 @@ jobs: 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 - dylibbundler -od -b -x builds/macos/Fingertip.app/Contents/MacOS/fingertip -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 ls -l builds/macos/Fingertip.app/Contents/Frameworks diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml deleted file mode 100644 index 27fa9c30..00000000 --- a/.github/workflows/build-macos.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Build and Package - MacOS - -# on: [push, pull_request, workflow_dispatch] -on: [workflow_dispatch] - -jobs: - build-for-macos: - strategy: - fail-fast: false - matrix: - os: [macos-12, macos-14] # 12=x86, 14=M1 - uses: ./.github/workflows/build-macos-reusable.yml - with: - os: ${{ matrix.os }} - secrets: inherit diff --git a/README.md b/README.md index f5899733..6944282a 100644 --- a/README.md +++ b/README.md @@ -70,8 +70,8 @@ bash builds/linux/create_appimage.sh ### Windows -Due to the [difference](https://github.com/handshake-org/hnsd/issues/128) in hnsd behaviour on Windows and other platforms (and overall complexity of building for windows), -Windows is not supported. This may change in future. +Due to the [difference](https://github.com/handshake-org/hnsd/issues/128) in hnsd behaviour on Windows and other platforms (and overall complexity of building for windows), stateless DANE is not supported on Windows. +The version from the [v0.0.3 release](https://github.com/imperviousinc/fingertip/releases/tag/v0.0.3) should be used for usual DANE. ## Credits