From 2240fccf4a84fdaf192ed08ea27191f6f204a397 Mon Sep 17 00:00:00 2001 From: Danilo Tuler Date: Fri, 6 Sep 2024 00:49:35 -0400 Subject: [PATCH] ci: brew test-bot and bottles https://brew.sh/2020/11/18/homebrew-tap-with-bottles-uploaded-to-github-releases/ --- .github/workflows/cartesi-machine.yml | 17 ----------- .github/workflows/cartesi.yml | 17 ----------- .github/workflows/publish.yml | 41 +++++++++++++++++++++++++++ .github/workflows/tests.yml | 41 +++++++++++++++++++++++++++ 4 files changed, 82 insertions(+), 34 deletions(-) delete mode 100644 .github/workflows/cartesi-machine.yml delete mode 100644 .github/workflows/cartesi.yml create mode 100644 .github/workflows/publish.yml create mode 100644 .github/workflows/tests.yml diff --git a/.github/workflows/cartesi-machine.yml b/.github/workflows/cartesi-machine.yml deleted file mode 100644 index e645b64..0000000 --- a/.github/workflows/cartesi-machine.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: cartesi-machine -on: - push: - paths: - - .github/workflows/cartesi-machine.yml - - Formula/cartesi-machine.rb -jobs: - test: - runs-on: macos-latest - steps: - - uses: actions/checkout@v4 - - uses: maxim-lobanov/setup-xcode@v1 - with: - xcode-version: latest-stable - - run: brew update - - run: brew install Formula/cartesi-machine.rb - - run: cartesi-machine --version diff --git a/.github/workflows/cartesi.yml b/.github/workflows/cartesi.yml deleted file mode 100644 index eb48863..0000000 --- a/.github/workflows/cartesi.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: cartesi -on: - push: - paths: - - .github/workflows/cartesi.yml - - Formula/cartesi.rb -jobs: - test: - runs-on: macos-latest - steps: - - uses: actions/checkout@v4 - - uses: maxim-lobanov/setup-xcode@v1 - with: - xcode-version: latest-stable - - run: brew update - - run: brew install Formula/cartesi.rb - - run: cartesi --version diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..6e594c8 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,41 @@ +name: brew pr-pull + +on: + pull_request_target: + types: + - labeled + +jobs: + pr-pull: + if: contains(github.event.pull_request.labels.*.name, 'pr-pull') + runs-on: ubuntu-22.04 + permissions: + contents: write + packages: write + pull-requests: write + steps: + - name: Set up Homebrew + uses: Homebrew/actions/setup-homebrew@master + + - name: Set up git + uses: Homebrew/actions/git-user-config@master + + - name: Pull bottles + env: + HOMEBREW_GITHUB_API_TOKEN: ${{ github.token }} + HOMEBREW_GITHUB_PACKAGES_TOKEN: ${{ github.token }} + HOMEBREW_GITHUB_PACKAGES_USER: ${{ github.repository_owner }} + PULL_REQUEST: ${{ github.event.pull_request.number }} + run: brew pr-pull --debug --tap="$GITHUB_REPOSITORY" "$PULL_REQUEST" + + - name: Push commits + uses: Homebrew/actions/git-try-push@master + with: + token: ${{ github.token }} + branch: main + + - name: Delete branch + if: github.event.pull_request.head.repo.fork == false + env: + BRANCH: ${{ github.event.pull_request.head.ref }} + run: git push --delete origin "$BRANCH" diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..dc1fe55 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,41 @@ +name: brew test-bot + +on: + push: + branches: + - main + pull_request: + +jobs: + test-bot: + strategy: + matrix: + os: [ubuntu-22.04, macos-13, macos-14] + runs-on: ${{ matrix.os }} + steps: + - name: Set up Homebrew + id: set-up-homebrew + uses: Homebrew/actions/setup-homebrew@master + + - name: Cache Homebrew Bundler RubyGems + uses: actions/cache@v4 + with: + path: ${{ steps.set-up-homebrew.outputs.gems-path }} + key: ${{ matrix.os }}-rubygems-${{ steps.set-up-homebrew.outputs.gems-hash }} + restore-keys: ${{ matrix.os }}-rubygems- + + - run: brew test-bot --only-cleanup-before + + - run: brew test-bot --only-setup + + - run: brew test-bot --only-tap-syntax + + - run: brew test-bot --only-formulae --root-url='https://ghcr.io/v2/cartesi/homebrew-tap' + if: github.event_name == 'pull_request' + + - name: Upload bottles as artifact + if: always() && github.event_name == 'pull_request' + uses: actions/upload-artifact@v4 + with: + name: bottles_${{ matrix.os }} + path: "*.bottle.*"