diff --git a/.github/workflows/building-uploading-all.yml b/.github/workflows/building-uploading-all.yml.bak similarity index 100% rename from .github/workflows/building-uploading-all.yml rename to .github/workflows/building-uploading-all.yml.bak diff --git a/.github/workflows/building-uploading.yml b/.github/workflows/building-uploading.yml.bak similarity index 100% rename from .github/workflows/building-uploading.yml rename to .github/workflows/building-uploading.yml.bak diff --git a/.github/workflows/bumping.yml b/.github/workflows/bumping.yml.bak similarity index 100% rename from .github/workflows/bumping.yml rename to .github/workflows/bumping.yml.bak diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..da14201 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,39 @@ +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: none + 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.actor }} + 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/publishing.yml b/.github/workflows/publishing.yml.bak similarity index 100% rename from .github/workflows/publishing.yml rename to .github/workflows/publishing.yml.bak diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml deleted file mode 100644 index 4ad626a..0000000 --- a/.github/workflows/testing.yml +++ /dev/null @@ -1,48 +0,0 @@ -name: Testing - -on: - pull_request: - push: - branches: - - master - -jobs: - check: - runs-on: ubuntu-latest - container: - image: ghcr.io/homebrew/ubuntu22.04:master - steps: - - name: Set up Homebrew - uses: Homebrew/actions/setup-homebrew@master - - name: Check formulae - run: brew test-bot --only-tap-syntax - build: - if: github.event_name == 'pull_request' - needs: check - strategy: - fail-fast: false - matrix: - include: - - os: ubuntu-latest - container: - image: ghcr.io/homebrew/ubuntu22.04:master - options: --user=linuxbrew - - os: macos-12 - - os: macos-13 - runs-on: ${{matrix.os}} - container: ${{matrix.container}} - steps: - - name: Set up Homebrew - uses: Homebrew/actions/setup-homebrew@master - - name: Build bottles - run: | - mkdir ~/bottles - cd ~/bottles - brew test-bot - - name: Upload bottles - if: always() - uses: actions/upload-artifact@v4 - with: - name: bottles - path: ~/bottles - if-no-files-found: error diff --git a/.github/workflows/testing.yml.bak b/.github/workflows/testing.yml.bak new file mode 100644 index 0000000..9a0484b --- /dev/null +++ b/.github/workflows/testing.yml.bak @@ -0,0 +1,59 @@ +name: "Test Suite" +on: + push: + branches-ignore: + - 'dependabot/**' #avoid duplicates: only run the PR, not the push + - 'renovate/**' #avoid duplicates: only run the PR, not the push + - 'gh-pages' #github pages do not trigger all tests + tags-ignore: + - 'v*' #avoid rerun existing commit on release + pull_request: + branches: + - 'main' + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + check: + if: (github.event_name != 'pull_request' && ! github.event.pull_request.head.repo.fork) || (github.event_name == 'pull_request' && (github.event.pull_request.head.repo.fork || startsWith(github.head_ref, 'dependabot/') || startsWith(github.head_ref, 'renovate/'))) + runs-on: ubuntu-latest + container: + image: ghcr.io/homebrew/ubuntu22.04:master + steps: + - name: Set up Homebrew + uses: Homebrew/actions/setup-homebrew@master + - name: Check formulae + run: brew test-bot --only-tap-syntax + + build: + if: (github.event_name != 'pull_request' && ! github.event.pull_request.head.repo.fork) || (github.event_name == 'pull_request' && (github.event.pull_request.head.repo.fork || startsWith(github.head_ref, 'dependabot/') || startsWith(github.head_ref, 'renovate/'))) + needs: check + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + container: + image: ghcr.io/homebrew/ubuntu22.04:master + options: --user=linuxbrew + - os: macos-13 + - os: macos-14 + runs-on: ${{matrix.os}} + container: ${{matrix.container}} + steps: + - name: Set up Homebrew + uses: Homebrew/actions/setup-homebrew@master + - name: Build bottles + run: | + mkdir ~/bottles + cd ~/bottles + brew test-bot + - name: Upload bottles as artifact + if: always() + uses: actions/upload-artifact@main + with: + name: bottles + path: '*.bottle.*' + if-no-files-found: error diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..88717c2 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,40 @@ +name: brew test-bot +on: + push: + branches: + - main + pull_request: +jobs: + test-bot: + strategy: + matrix: + os: [ubuntu-22.04, macos-13] + runs-on: ${{ matrix.os }} + steps: + - name: Set up Homebrew + id: set-up-homebrew + uses: Homebrew/actions/setup-homebrew@master + + - name: Cache Homebrew Bundler RubyGems + id: cache + uses: actions/cache@v3 + 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- + + - 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 + if: github.event_name == 'pull_request' + + - name: Upload bottles as artifact + if: always() && github.event_name == 'pull_request' + uses: actions/upload-artifact@v3 + with: + name: bottles + path: '*.bottle.*'