Rebuild bottles of gnupg@8.4 #1177
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Dispatch rebottle | |
run-name: Rebuild bottles of ${{ inputs.formula }} | |
on: | |
workflow_dispatch: | |
inputs: | |
formula: | |
description: Formula name | |
required: true | |
timeout: | |
description: "Build timeout (in minutes, default: 180 minutes)" | |
default: "180" | |
required: false | |
issue: | |
description: Issue number, where comment on failure would be posted | |
required: false | |
upload: | |
description: "Upload built bottles? (default: false)" | |
type: boolean | |
default: false | |
required: false | |
fail-fast: | |
description: "Fail immediately on a single OS version failure? (default: true)" | |
type: boolean | |
default: true | |
required: false | |
env: | |
HOMEBREW_DEVELOPER: 1 | |
HOMEBREW_GITHUB_ACTIONS: 1 | |
HOMEBREW_NO_AUTO_UPDATE: 1 | |
HOMEBREW_NO_INSTALL_FROM_API: 1 | |
HOMEBREW_RELOCATE_RPATHS: 1 | |
jobs: | |
bottle: | |
strategy: | |
matrix: | |
include: | |
- runner: 'macos-14-arm64' | |
- runner: 'macos-13-arm64' | |
- runner: 'macos-12-arm64' | |
- runner: 'macos-13' | |
- runner: 'macos-12' | |
- runner: 'ubuntu-22.04' | |
container: | |
image: "ghcr.io/homebrew/ubuntu22.04:master" | |
options: "--user=linuxbrew -e GITHUB_ACTIONS_HOMEBREW_SELF_HOSTED" | |
workdir: /github/home | |
fail-fast: ${{fromJson(github.event.inputs.fail-fast)}} | |
runs-on: ${{matrix.runner}} | |
container: ${{matrix.container}} | |
timeout-minutes: ${{fromJson(github.event.inputs.timeout)}} | |
defaults: | |
run: | |
working-directory: ${{matrix.workdir || github.workspace}} | |
env: | |
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} | |
steps: | |
- name: ${{github.event.inputs.formula}} | |
id: print_details | |
run: | | |
echo sender=${{github.event.sender.login}} | |
echo formula=${{github.event.inputs.formula}} | |
echo timeout=${{github.event.inputs.timeout}} | |
echo issue=${{github.event.inputs.issue}} | |
echo upload=${{github.event.inputs.upload}} | |
- name: Set environment variables | |
if: runner.os == 'macOS' | |
run: | | |
echo 'PATH=/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin' >> $GITHUB_ENV | |
# TODO: remove the line below once set in the runner .env file | |
echo 'GITHUB_ACTIONS_HOMEBREW_SELF_HOSTED=1' >> $GITHUB_ENV | |
- name: Set up Homebrew | |
id: set-up-homebrew | |
uses: Homebrew/actions/setup-homebrew@master | |
- run: brew test-bot --only-cleanup-before | |
- run: brew test-bot --only-setup | |
- name: Run brew test-bot --only-formulae --only-json-tab --skip-online-checks --skip-dependents | |
env: | |
HOMEBREW_GITHUB_API_TOKEN: ${{secrets.GITHUB_TOKEN}} | |
run: | | |
mkdir bottles | |
cd bottles | |
brew test-bot --only-formulae --only-json-tab --skip-online-checks --skip-dependents --root-url="https://ghcr.io/v2/${{ github.repository_owner }}/extensions" ${{github.event.inputs.formula}} | |
- name: Failures summary for brew test-bot --only-formulae | |
if: always() | |
uses: Homebrew/actions/failures-summary-and-bottle-result@master | |
with: | |
workdir: ${{matrix.workdir || github.workspace}} | |
result_path: bottles/steps_output.txt | |
step_name: 'Build summary on ${{ matrix.runner }}' | |
- name: Output brew linkage result | |
if: always() | |
uses: Homebrew/actions/failures-summary-and-bottle-result@master | |
with: | |
workdir: ${{matrix.workdir || github.workspace}} | |
result_path: bottles/linkage_output.txt | |
step_name: '`brew linkage` output on ${{ matrix.runner }}' | |
- name: Output brew bottle result | |
if: always() | |
uses: Homebrew/actions/failures-summary-and-bottle-result@master | |
with: | |
workdir: ${{matrix.workdir || github.workspace}} | |
result_path: bottles/bottle_output.txt | |
step_name: '`brew bottle` output on ${{ matrix.runner }}' | |
- name: Upload logs | |
if: failure() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: logs | |
path: ${{matrix.workdir || github.workspace}}/bottles/logs | |
- name: Delete logs and home | |
if: always() | |
run: | | |
rm -rvf bottles/logs | |
rm -rvf bottles/home | |
rm -rvf bottles/failed | |
- name: Count bottles | |
id: bottles | |
if: always() | |
run: | | |
cd bottles | |
count=$(ls *.json | wc -l | xargs echo -n) | |
echo "$count bottles" | |
echo "::set-output name=count::$count" | |
- name: Upload bottles to GitHub Actions | |
if: always() && steps.bottles.outputs.count > 0 | |
uses: actions/upload-artifact@v3 | |
with: | |
name: bottles | |
path: ${{matrix.workdir || github.workspace}}/bottles | |
- name: Post cleanup | |
if: always() | |
run: | | |
brew test-bot --only-cleanup-after | |
rm -rvf bottles | |
- name: Post comment on failure | |
if: ${{!success() && github.event.inputs.issue > 0}} | |
uses: Homebrew/actions/post-comment@master | |
with: | |
token: ${{secrets.HOMEBREW_GITHUB_API_TOKEN}} | |
issue: ${{github.event.inputs.issue}} | |
body: ":x: @${{github.actor}} bottle request for ${{github.event.inputs.formula}} [failed](${{github.event.repository.html_url}}/actions/runs/${{github.run_id}})." | |
bot_body: ":x: Bottle request for ${{github.event.inputs.formula}} [failed](${{github.event.repository.html_url}}/actions/runs/${{github.run_id}})." | |
bot: BrewTestBot | |
upload: | |
runs-on: ubuntu-22.04 | |
needs: bottle | |
if: inputs.upload | |
container: | |
image: ghcr.io/homebrew/ubuntu22.04:master | |
defaults: | |
run: | |
shell: bash | |
env: | |
HOMEBREW_SIMULATE_MACOS_ON_LINUX: 1 | |
steps: | |
- name: Set up Homebrew | |
id: set-up-homebrew | |
uses: Homebrew/actions/setup-homebrew@master | |
- name: Download bottles from GitHub Actions | |
uses: actions/download-artifact@v3 | |
with: | |
name: bottles | |
path: ~/bottles/ | |
- name: Install gh, skopeo, and unzip | |
working-directory: ${{steps.set-up-homebrew.outputs.repository-path}} | |
run: bash .github/scripts/release-tools.sh | |
- name: Setup git | |
run: | | |
git config --global user.email 1589480+BrewTestBot@users.noreply.github.com | |
git config --global user.name BrewTestBot | |
- name: Upload bottles to GitHub Packages | |
env: | |
HOMEBREW_GITHUB_PACKAGES_USER: ${{ github.repository_owner }} | |
HOMEBREW_GITHUB_PACKAGES_TOKEN: ${{secrets.HOMEBREW_GITHUB_API_TOKEN}} | |
run: | | |
cd ~/bottles | |
brew pr-upload --verbose --root-url="https://ghcr.io/v2/${{ github.repository_owner }}/extensions" | |
- name: Push commits | |
uses: Homebrew/actions/git-try-push@master | |
with: | |
directory: ${{steps.set-up-homebrew.outputs.repository-path}} | |
token: ${{secrets.GITHUB_TOKEN}} | |
- name: Post comment on failure | |
if: ${{!success() && github.event.inputs.issue > 0}} | |
uses: Homebrew/actions/post-comment@master | |
with: | |
token: ${{secrets.HOMEBREW_GITHUB_API_TOKEN}} | |
issue: ${{github.event.inputs.issue}} | |
body: ':x: @${{github.actor}} bottle request for ${{github.event.inputs.formula}} [failed](${{github.event.repository.html_url}}/actions/runs/${{github.run_id}}).' | |
bot_body: ':x: Bottle request for ${{github.event.inputs.formula}} [failed](${{github.event.repository.html_url}}/actions/runs/${{github.run_id}}).' | |
bot: BrewTestBot |