# Only the "head" branch of the OpenBLAS package is tested on: push: paths: - '**/nightly-Homebrew-build.yml' pull_request: branches: - develop paths: - '**/nightly-Homebrew-build.yml' schedule: - cron: 45 7 * * * # This is 7:45 AM UTC daily, late at night in the USA # Since push and pull_request will still always be building and testing the `develop` branch, # it only makes sense to test if this file has been changed name: Nightly-Homebrew-Build concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true permissions: contents: read # to fetch code (actions/checkout) jobs: build-OpenBLAS-with-Homebrew: if: "github.repository == 'OpenMathLib/OpenBLAS'" runs-on: macos-latest env: DEVELOPER_DIR: /Applications/Xcode_11.4.1.app/Contents/Developer HOMEBREW_DEVELOPER: "ON" HOMEBREW_DISPLAY_INSTALL_TIMES: "ON" HOMEBREW_NO_ANALYTICS: "ON" HOMEBREW_NO_AUTO_UPDATE: "ON" HOMEBREW_NO_BOTTLE_SOURCE_FALLBACK: "ON" HOMEBREW_NO_INSTALL_CLEANUP: "ON" HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: "ON" HOMEBREW_NO_INSTALL_FROM_API: "ON" steps: - name: Random delay for cron job run: | delay=$(( RANDOM % 600 )) printf 'Delaying for %s seconds on event %s' ${delay} "${{ github.event_name }}" sleep ${delay} if: github.event_name == 'schedule' - uses: actions/checkout@v2 # This isn't even needed, technically. Homebrew will get `develop` via git - name: Update Homebrew if: github.event_name != 'pull_request' run: brew update || true - name: Install prerequisites run: brew install --fetch-HEAD --HEAD --only-dependencies --keep-tmp openblas - name: Install and bottle OpenBLAS run: brew install --fetch-HEAD --HEAD --build-bottle --keep-tmp openblas # the HEAD flags tell Homebrew to build the develop branch fetch via git - name: Create bottle run: | brew bottle -v openblas mkdir bottles mv *.bottle.tar.gz bottles - name: Upload bottle uses: actions/upload-artifact@v4 with: name: openblas--HEAD.catalina.bottle.tar.gz path: bottles - name: Show linkage run: brew linkage -v openblas - name: Test openblas run: brew test --HEAD --verbose openblas - name: Audit openblas formula run: | brew audit --strict openblas brew cat openblas - name: Post logs on failure if: failure() run: brew gist-logs --with-hostname -v openblas