diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 7d9b9e4..7a14f1e 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -30,7 +30,7 @@ jobs: HOMEBREW_GITHUB_PACKAGES_TOKEN: ${{ github.token }} HOMEBREW_GITHUB_PACKAGES_USER: ${{ github.actor }} PULL_REQUEST: ${{ github.event.pull_request.number }} - run: brew pr-pull --debug --tap=$GITHUB_REPOSITORY $PULL_REQUEST + run: brew pr-pull --debug --workflows=tests.yml,tests-arm.yml --tap=$GITHUB_REPOSITORY $PULL_REQUEST - name: Push commits uses: Homebrew/actions/git-try-push@master diff --git a/.github/workflows/tests-arm.yml b/.github/workflows/tests-arm.yml new file mode 100644 index 0000000..8cca5ab --- /dev/null +++ b/.github/workflows/tests-arm.yml @@ -0,0 +1,67 @@ +name: MacOS ARM brew test-bot +on: + push: + branches: + - main + pull_request: + +jobs: + test-bot: + strategy: + matrix: + os: [macos-12-arm, macos-13-arm] + runs-on: ${{ matrix.os }} + steps: + - name: Install Rosetta for any x86 arch operations + continue-on-error: true + run: softwareupdate --install-rosetta --agree-to-license + + # Fixes issue that resulted in "npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY" + - name: Reinstall Brew packages to fix npm error + continue-on-error: true + run: | + arch -arm64 brew reinstall openssl@1.1 + arch -arm64 brew reinstall ca-certificates + + - name: Set up Homebrew + id: set-up-homebrew + uses: Homebrew/actions/setup-homebrew@master + + - name: Cache Homebrew Bundler RubyGems + id: cache + uses: actions/cache@v1 + with: + path: ${{ steps.set-up-homebrew.outputs.gems-path }} + key: ${{ runner.os }}-rubygems-${{ steps.set-up-homebrew.outputs.gems-hash }} + restore-keys: ${{ runner.os }}-rubygems- + + - name: Install Homebrew Bundler RubyGems + if: steps.cache.outputs.cache-hit != 'true' + run: brew install-bundler-gems + + # For macos 11 and 12, we need to add the arch prefix for all brew commands even though + # running brew commands directly on the box works fine. + - run: arch -arm64 brew test-bot --only-cleanup-before + continue-on-error: true + + - run: arch -arm64 brew test-bot --only-setup + + # GitHubPrivateRepositoryDownloadStrategy causes brew style check failures so temporarily disable + # - run: arch -arm64 brew test-bot --only-tap-syntax + + # --skip-online-checks is needed so that private github urls are not + # rejected in homebrew audit steps since these urls will return 404 not + # found unless using a github PAT with access to the repo + - run: arch -arm64 brew test-bot --only-formulae --skip-online-checks + # This is a temporary fix since our zli bulids x86 AND arm which results in a useless error + continue-on-error: true + if: github.event_name == 'pull_request' + env: + HOMEBREW_GITHUB_API_TOKEN: ${{ secrets.ROLE_ACCOUNT_GH_ACCESS_TOKEN }} + + - name: Upload bottles as artifact + if: always() && github.event_name == 'pull_request' + uses: actions/upload-artifact@v3 + with: + name: bottles + path: '*.bottle.*'