Skip to content

Sign MacOS Binaries with JFrog Certificate #3

Sign MacOS Binaries with JFrog Certificate

Sign MacOS Binaries with JFrog Certificate #3

name: Prepare MacOS binaries for CLI release
on: [ push ]
jobs:
Extract_Release_Version:
name: Extract Release Version
if: ${{ contains(github.event.head_commit.message, 'Bump version from') }}
runs-on: ubuntu-latest
outputs:
version: ${{ steps.extract_version.outputs.version }}
steps:
- name: Extract version
id: extract_version
run: |
VERSION=$(echo "${{ github.event.head_commit.message }}" | awk -F'to ' '{print $2}' | sed 's/[^0-9.]*//g')
echo "version=$VERSION" >> $GITHUB_OUTPUT
prepareBinary:
name: Prepare-Binary
needs: Extract_Release_Version
runs-on: macos-latest
strategy:
matrix:
goarch: [ arm64,amd64 ]
steps:
- name: Delete-Old-Artifacts
runs-on: ubuntu-latest
steps:
- uses: kolpav/purge-artifacts-action@v1
with:
token: ${{ secrets.JF_GIT_TOKEN }}
expire-in: 0 # Setting this to 0 will delete all artifacts
onlyPrefix: jf-
- name: Set Environment Variable
run: |
echo "releaseVersion=${{ needs.Extract_Release_Version.outputs.version }}" >> $GITHUB_ENV
echo "goarch=${{ matrix.goarch }}" >> $GITHUB_ENV
# Setup
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: 1.22.x
cache: false
# Build
- name: Checkout Source
uses: actions/checkout@v4
- name: Build
run: ./build/build.sh
# Sign
- name: Sign Binary
env:
APPLE_CERT_DATA: ${{ secrets.APPLE_CERT_DATA }}
APPLE_CERT_PASSWORD: ${{ secrets.APPLE_CERT_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
run: ./build/macOsSign/signMacOsBinary.sh
# Upload
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: jf-darwin-v${{ env.releaseVersion }}-${{ matrix.goarch }}
path: ./jf
retention-days: 1