name: Build, Sign and Notarize Orbit for macOS on: workflow_dispatch: # allow manual action push: paths: # The workflow can be triggered by modifying ORBIT_VERSION env. - '.github/workflows/build-orbit.yaml' pull_request: paths: - 'orbit/**.go' # The workflow can be triggered by modifying ORBIT_VERSION env. - '.github/workflows/build-orbit.yaml' env: ORBIT_VERSION: 1.20.0 CGO_ENABLED: 1 # This allows a subsequently queued workflow run to interrupt previous runs concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id}} cancel-in-progress: true defaults: run: # fail-fast using bash -eo pipefail. See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#exit-codes-and-error-action-preference shell: bash permissions: contents: read jobs: build: runs-on: macos-latest steps: - name: Harden Runner uses: step-security/harden-runner@63c24ba6bd7ba022e95695ff85de572c04a18142 # v2.7.0 with: egress-policy: audit - name: Checkout uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - name: Import signing keys env: APPLE_APPLICATION_CERTIFICATE: ${{ secrets.APPLE_APPLICATION_CERTIFICATE }} APPLE_APPLICATION_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_APPLICATION_CERTIFICATE_PASSWORD }} KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} run: | echo "$APPLE_APPLICATION_CERTIFICATE" | base64 --decode > certificate.p12 security create-keychain -p $KEYCHAIN_PASSWORD build.keychain security default-keychain -s build.keychain security unlock-keychain -p $KEYCHAIN_PASSWORD build.keychain security import certificate.p12 -k build.keychain -P $APPLE_APPLICATION_CERTIFICATE_PASSWORD -T /usr/bin/codesign security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k $KEYCHAIN_PASSWORD build.keychain security find-identity -vv rm certificate.p12 - name: Set up Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: go-version-file: 'go.mod' - name: Build, codesign and notarize orbit run: go run ./orbit/tools/build/build.go env: GITHUB_TOKEN: ${{ secrets.FLEET_RELEASE_GITHUB_PAT }} AC_USERNAME: ${{ secrets.APPLE_USERNAME }} AC_PASSWORD: ${{ secrets.APPLE_PASSWORD }} AC_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} CODESIGN_IDENTITY: 51049B247B25B3119FAE7E9C0CC4375A43E47237 ORBIT_VERSION: ${{ env.ORBIT_VERSION }} ORBIT_COMMIT: ${{ github.sha }} - name: Upload orbit uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v2 with: name: orbit path: | orbit-darwin