Skip to content

ci (mac): install brew for amd64 #96

ci (mac): install brew for amd64

ci (mac): install brew for amd64 #96

Workflow file for this run

name: release
on:
push:
tags:
- 'v*.*.*'
permissions: # Set permissions for the GITHUB_TOKEN
contents: write # Grant write permission to contents
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install deps
run: sudo make deb-install-deps
- name: build static binary
run: make mh-static OPTS=-lpthread
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: mh-static-linux-x86_64
path: mh-linux-x86_64
build-deb:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
path: 'mh'
- name: build deb package
run: |
cd mh
git fetch --tags --force
git fetch --unshallow
docker run --rm -v ${{ github.workspace }}:/workspace -w /workspace debian:buster bash -c "apt-get update && apt install -y build-essential git pkg-config && git config --global --add safe.directory /workspace/mh && make -C mh deb-install-deps deb-export-archive deb-version deb-build"
ls ..
- name: Extract Git Tag
run: |
# Retrieve the current tag
cd mh
VERSION=$(git describe --tags --abbrev=0)
# Strip the 'v' prefix if needed
VERSION=${VERSION#v}
echo "VERSION=$VERSION" >> $GITHUB_ENV
ls
- name: upload artifcat
uses: actions/upload-artifact@v4
with:
path: mh_${{ env.VERSION }}-1_amd64.deb
name: mh_${{ env.VERSION }}-1_amd64.deb
build-osx-arm:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Check for Homebrew
run: |
if test ! $(which brew); then
echo "Homebrew not found"
exit 1
fi
- name: update brew
run: brew update
- name: install libs
run: brew install pcre2 cmocka
- name: Install dependencies
run: |
brew install llvm
echo 'export PATH="/usr/local/opt/llvm/bin:$PATH"' >> $GITHUB_ENV
echo 'export LDFLAGS="-L/usr/local/opt/llvm/lib"' >> $GITHUB_ENV
echo 'export CPPFLAGS="-I/usr/local/opt/llvm/include"' >> $GITHUB_ENV
- name: build
run: |
make mh CC=clang LIBS="$(pkg-config --cflags --libs libpcre2-8) -lpthread" PROGNAME=mh-$(uname -o | tr '[:upper:]' '[:lower:]')-$(uname -m)
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: mh-darwin-arm64
path: mh-darwin-arm64
build-osx-amd64:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Check for Homebrew
run: /usr/sbin/softwareupdate --install-rosetta --agree-to-license
- name: install brew for amd64
run: arch -x86_64 /usr/bin/env bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- name: update brew
run: arch -x86_64 /usr/localb/bin/brew update
- name: Install Python and Handle Symlink Conflicts
run: |
arch -x86_64 /usr/local/bin/brew install python@3.12 || true
brew link --overwrite python@3.12
- name: install libs
run: arch -x86_64 /usr/local/bin/brew install pcre2 cmocka llvm pkg-config
- name: Install dependencies
run: |
echo 'export PATH="/usr/local/opt/llvm/bin:$PATH"' >> $GITHUB_ENV
echo 'export LDFLAGS="-L/usr/local/opt/llvm/lib"' >> $GITHUB_ENV
echo 'export CPPFLAGS="-I/usr/local/opt/llvm/include"' >> $GITHUB_ENV
- name: build
run: |
export LDFLAGS="-L/usr/local/opt/llvm/lib"
export CPPFLAGS="-I/usr/local/opt/llvm/include"
make mh CC=clang LIBS="$(/usr/local/bin/pkg-config --cflags --libs libpcre2-8) -lpthread" CPPFLAGS="-target x86_64-apple-macos11" PROGNAME=mh-darwin-x86_64-apple-macos11
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: mh-darwin-x86_64-apple-macos11
path: mh-darwin-x86_64-apple-macos11
create-release:
runs-on: ubuntu-latest
needs: [build, build-deb, build-osx-arm, build-osx-amd64]
steps:
- name: Create Release
id: create_release
uses: actions/create-release@v1
with:
tag_name: ${{ github.ref }}
release_name: "Release ${{ github.ref }}"
body: "Release notes or description"
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: ./artifacts
- name: list
run: ls -ll artifacts/
- name: upload mac osx arm build artifact to release
uses: softprops/action-gh-release@v2
with:
files: |
artifacts/mh-darwin-*/*
artifacts/mh-static-linux-x86_64/*
artifacts/mh_*_amd64.deb/*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}