name: "macOS build" on: push: branches: [ main, stable ] paths-ignore: - 'README.md' - 'SECURITY.md' - '.gitmodules' - '.gitignore' - 'LICENSE' - 'cider.lock' jobs: build-macos: name: build-macos runs-on: macos-11 permissions: actions: read contents: write security-events: write strategy: fail-fast: false matrix: language: [ 'javascript' ] steps: - uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: '12.4' - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Run Version Script env: GH_REQUEST_TOKEN: ${{ secrets.RELEASE_TOKEN }} run: | sudo chmod +x resources/version.sh && ./resources/version.sh || true echo "APP_VERSION=$(node -p -e 'require("./package.json").version')" >>$GITHUB_ENV - name: Sign in to EVS run: | python3 -m pip install --upgrade castlabs-evs python3 -m castlabs_evs.account refresh -A ${{ secrets.EVS_ACCOUNT_NAME }} -P ${{ secrets.EVS_PASSWD }} - name: Setup Environment run: brew install automake #libtool autoconf - name: Clear node_airtunes2 cache run: sudo rm -rf /Users/runner/Library/Caches/Yarn/v6/.tmp/cf5bc2de2629636ca224995234b8eaa1 || true - name: Install and Configure Node Modules run: | yarn install cp resources/verror-types node_modules/@types/verror/index.d.ts cp resources/macPackager.js node_modules/app-builder-lib/out/macPackager.js rm -r node_modules/pouchdb-node/node_modules/leveldown || true rm -r node_modules/pouchdb-adapter-leveldb/node_modules/leveldown || true - name: Build the DMG env: CSC_LINK: ${{ secrets.CSC_LINK }} CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }} APPLEID: ${{ secrets.APPLEID }} APPLEIDPASS: ${{ secrets.APPLEIDPASS }} APPLE_ID: ${{ secrets.APPLEID }} APPLE_ID_PASSWORD: ${{ secrets.APPLEIDPASS }} PSC_NAME: ${{ secrets.PSC_NAME }} DEVELOPER_DIR: /Applications/Xcode_12.4.app/Contents/Developer run: yarn dist:universalNotWorking -p never - name: Add license to DMG run: npx dmg-license resources/license.json dist/*.dmg - name: Upload macOS Latest uses: svenstaro/upload-release-action@v2 with: repo_name: ciderapp/cider-releases repo_token: ${{ secrets.RELEASE_TOKEN }} file: dist/latest-mac.yml tag: v${{ env.APP_VERSION }} - name: Import uses: apple-actions/import-codesign-certs@v1 with: p12-file-base64: ${{ secrets.CSC_LINK }} p12-password: ${{ secrets.CSC_KEY_PASSWORD }} - name: Build the PKG env: CSC_LINK: ${{ secrets.CSC_LINK }} CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }} APPLEID: ${{ secrets.APPLEID }} APPLEIDPASS: ${{ secrets.APPLEIDPASS }} run: | pkgbuild --component dist/mac-universal/Cider.app --install-location /Applications dist/Cider-${{ env.APP_VERSION }}-universal.pkg --sign ${{ secrets.PSC_NAME }} xcrun altool --notarize-app --primary-bundle-id com.ciderapp.cider -f dist/Cider*.pkg --username ${{ secrets.APPLEID }} --password ${{ secrets.APPLEIDPASS }} sleep 5m xcrun stapler staple dist/Cider*.pkg || true - name: Upload a Build Artifact uses: actions/upload-artifact@v2.2.3 with: name: Cider-macOS-${{ env.APP_VERSION }} path: | dist/*.dmg dist/*.pkg dist/latest-mac.yml - name: Upload Files (DMG) uses: svenstaro/upload-release-action@v2 with: repo_name: ciderapp/cider-releases repo_token: ${{ secrets.RELEASE_TOKEN }} file: dist/Cider-${{ env.APP_VERSION }}-universal.dmg tag: v${{ env.APP_VERSION }} - name: Upload Files (PKG) uses: svenstaro/upload-release-action@v2 with: repo_name: ciderapp/cider-releases repo_token: ${{ secrets.RELEASE_TOKEN }} file: dist/Cider-${{ env.APP_VERSION }}-universal.pkg tag: v${{ env.APP_VERSION }} - name: Trigger Bot Sync (main) uses: indiesdev/curl@v1.1 with: url: http://129.146.42.180/api/v1/github/sync/main log-response: true timeout: 60000 - name: Trigger Bot Sync (stable) uses: indiesdev/curl@v1.1 with: url: http://129.146.42.180/api/v1/github/sync/stable log-response: true timeout: 60000