|
| 1 | +name: Publish |
| 2 | +on: |
| 3 | + push: |
| 4 | + tags: |
| 5 | + - 'v*' |
| 6 | +permissions: |
| 7 | + contents: write |
| 8 | +jobs: |
| 9 | + build: |
| 10 | + runs-on: macos-11 |
| 11 | + env: |
| 12 | + DEVELOPER_DIR: /Applications/Xcode_11.7.app/Contents/Developer |
| 13 | + steps: |
| 14 | + - name: Cloning Git repository |
| 15 | + uses: actions/checkout@v3 |
| 16 | + with: |
| 17 | + submodules: 'recursive' |
| 18 | + - name: Install dependencies |
| 19 | + run: | |
| 20 | + brew install coreutils jq xcbeautify gawk gh gpg |
| 21 | + - name: Attempt to build the Live Enhancement Suite for macOS |
| 22 | + shell: bash |
| 23 | + run: | |
| 24 | + export LOG_NAME="build_$(date +%s).log" |
| 25 | + export XCODE_ARGS="clean build" |
| 26 | + export XCODE_ARGS="${XCODE_ARGS} GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=NO GCC_TREAT_WARNINGS_AS_ERRORS=NO CLANG_ENABLE_CODE_COVERAGE=NO" |
| 27 | + export XCODE_ARGS="${XCODE_ARGS} -enableAddressSanitizer NO -enableThreadSanitizer NO -enableUndefinedBehaviorSanitizer NO" |
| 28 | + export XCODE_ARGS="${XCODE_ARGS} SDKROOT=${DEVELOPER_DIR}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk" |
| 29 | + export XCODE_ARGS="${XCODE_ARGS} MACOSX_DEPLOYMENT_TARGET=10.12" |
| 30 | + xcodebuild -workspace Hammerspoon.xcworkspace -scheme Release -configuration Release ${XCODE_ARGS} | \ |
| 31 | + tee ${LOG_NAME} | \ |
| 32 | + xcbeautify && exit ${PIPESTATUS[0]} |
| 33 | + - name: Copy Hammerspoon binary to root for disk image packaging |
| 34 | + run: | |
| 35 | + mkdir release |
| 36 | + cp -Rv ${HOME}/Library/Developer/Xcode/DerivedData/*/Build/Products/Release/*.app/ ./Live\ Enhancement\ Suite.app/ |
| 37 | + - name: Set up environment for disk image creation |
| 38 | + uses: actions/setup-node@v3 |
| 39 | + with: |
| 40 | + node-version: '14.x' |
| 41 | + - name: Create Live Enhancement Suite disk image |
| 42 | + run: | |
| 43 | + npm install -g create-dmg |
| 44 | + create-dmg --dmg-title="Live Enhancement Suite" Live\ Enhancement\ Suite.app release 2>&1 || true |
| 45 | + mv -v release/*.dmg release/LiveEnhancementSuite.dmg |
| 46 | + shasum release/*.dmg | tee release/CHECKSUM_SHA256.txt |
| 47 | + - name: Upload disk image as release asset |
| 48 | + uses: svenstaro/upload-release-action@v2 |
| 49 | + with: |
| 50 | + repo_token: ${{ secrets.GITHUB_TOKEN }} |
| 51 | + file: release/LiveEnhancementSuite.dmg |
| 52 | + asset_name: LiveEnhancementSuite.dmg |
| 53 | + tag: ${{ github.ref }} |
| 54 | + overwrite: true |
| 55 | + - name: Upload checksum as release asset |
| 56 | + uses: svenstaro/upload-release-action@v2 |
| 57 | + with: |
| 58 | + repo_token: ${{ secrets.GITHUB_TOKEN }} |
| 59 | + file: release/CHECKSUM_SHA256.txt |
| 60 | + asset_name: CHECKSUM_SHA256.txt |
| 61 | + tag: ${{ github.ref }} |
| 62 | + overwrite: true |
0 commit comments