Skip to content

Update snmp@8.4

Update snmp@8.4 #5206

Workflow file for this run

name: Update and Build Formulae
on:
push:
branches:
- master
schedule:
- cron: '0 4 * * 4'
repository_dispatch:
workflow_dispatch:
pull_request:
env:
HOMEBREW_DEVELOPER: 1
HOMEBREW_GITHUB_ACTIONS: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_FROM_API: 1
HOMEBREW_RELOCATE_RPATHS: 1
jobs:
tap-syntax:
if: "!contains(github.event.head_commit.message, 'skip-build')"
runs-on: ubuntu-22.04
container:
image: ghcr.io/homebrew/ubuntu22.04:master
env:
HOMEBREW_FORCE_HOMEBREW_ON_LINUX: 1
outputs:
testing_formulae: ${{ steps.formulae-detect.outputs.testing_formulae }}
added_formulae: ${{ steps.formulae-detect.outputs.added_formulae }}
deleted_formulae: ${{ steps.formulae-detect.outputs.deleted_formulae }}
steps:
- name: Set up Homebrew
id: set-up-homebrew
uses: Homebrew/actions/setup-homebrew@master
- run: brew test-bot --only-tap-syntax
- run: brew test-bot --only-formulae-detect
if: github.event_name == 'pull_request'
id: formulae-detect
get-matrix:
if: github.event_name != 'pull_request' && !contains(github.event.head_commit.message, 'skip-build')
needs: tap-syntax
runs-on: ubuntu-22.04
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Get matrix
id: set-matrix
env:
GITHUB_MESSAGE: ${{ github.event.head_commit.message }}
run: |
json_array=()
if [[ "$GITHUB_MESSAGE" != *--build-only-* ]]; then
mapfile -t extensions < <(find ./Formula -name "*@*.rb" -print0 | xargs -0 basename -a | sed "s/@.*//" | sort | uniq)
else
IFS=, read -a extensions <<< $(echo "$GITHUB_MESSAGE" | grep -Po 'build-only-.*' | cut -d '-' -f 3-)
fi
for extension in ${extensions[@]}; do
json_array+=("{\"extension\": \"$extension\"}")
done
echo "matrix={\"include\":[$(echo ${json_array[@]} | sed -e 's|} {|}, {|g')]}" >> "$GITHUB_OUTPUT"
create-pr:
if: github.event_name != 'pull_request' && !contains(github.event.head_commit.message, 'skip-build')
needs: get-matrix
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix: ${{fromJson(needs.get-matrix.outputs.matrix)}}
steps:
- uses: actions/checkout@v4
- name: Add brew to PATH
run: echo "/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin" >> $GITHUB_PATH
- name: Patch formula
id: patch
env:
EXTENSION: ${{ matrix.extension }}
GITHUB_MESSAGE: ${{ github.event.head_commit.message }}
GITHUB_DEFAULT_BRANCH: master
GITHUB_REPOSITORY: ${{ github.repository }}
GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}
GITHUB_TOKEN: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }}
GITHUB_SHA: ${{ github.sha }}
run: bash ./.github/scripts/pr.sh
set-environment:
if: github.event_name == 'pull_request' && !contains(github.event.head_commit.message, 'skip-build')
runs-on: ubuntu-22.04
needs: tap-syntax
outputs:
syntax-only: ${{ steps.check-labels.outputs.syntax-only }}
linux-runner: ${{ steps.check-labels.outputs.linux-runner }}
fail-fast: ${{ steps.check-labels.outputs.fail-fast }}
test-dependents: ${{ steps.check-labels.outputs.test-dependents }}
timeout-minutes: ${{ steps.check-labels.outputs.timeout-minutes }}
container: ${{ steps.check-labels.outputs.container }}
test-bot-formulae-args: ${{ steps.check-labels.outputs.test-bot-formulae-args }}
test-bot-dependents-args: ${{ steps.check-labels.outputs.test-bot-dependents-args }}
steps:
- uses: actions/checkout@v4
- name: Check for CI labels
id: check-labels
uses: actions/github-script@v6
env:
SCRIPTS_PATH: .github/scripts
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const path = require('path')
const script = require(path.resolve(`${process.env.SCRIPTS_PATH}/environment.js`))
const formula_detect = {
testing_formulae: '${{needs.tap-syntax.outputs.testing_formulae}}',
added_formulae: '${{needs.tap-syntax.outputs.added_formulae}}',
deleted_formulae: '${{needs.tap-syntax.outputs.deleted_formulae}}'
}
try {
await script({github, context, core}, formula_detect)
} catch (error) {
console.error(error);
}
build-formula:
needs: set-environment
if: github.event_name == 'pull_request' && !contains(github.event.head_commit.message, 'skip-build')
strategy:
matrix:
include:
- runner: 'macos-13-arm64'
- runner: 'macos-12-arm64'
- runner: 'macos-14'
- runner: 'macos-13'
- runner: 'macos-12'
- runner: ${{needs.set-environment.outputs.linux-runner}}
container: ${{fromJson(needs.set-environment.outputs.container)}}
workdir: /github/home
timeout: 4320
fail-fast: ${{fromJson(needs.set-environment.outputs.fail-fast)}}
runs-on: ${{matrix.runner}}
container: ${{matrix.container}}
timeout-minutes: ${{ matrix.timeout || fromJson(needs.set-environment.outputs.timeout-minutes) }}
defaults:
run:
shell: /bin/bash -e {0}
working-directory: ${{matrix.workdir || github.workspace}}
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
HOMEBREW_GITHUB_API_TOKEN: ${{secrets.GITHUB_TOKEN}}
steps:
- 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
- name: Prepare Container
if: runner.os == 'Linux'
run: |
sudo chmod 777 ${{matrix.workdir || github.workspace}}
sudo useradd _www
brew update
- 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 ${{ needs.set-environment.outputs.test-bot-formulae-args }}
id: brew-test-bot-formulae
run: |
mkdir bottles
cd bottles
brew test-bot ${{ needs.set-environment.outputs.test-bot-formulae-args }}
- name: Failures summary for brew test-bot ${{ needs.set-environment.outputs.test-bot-formulae-args }}
if: always()
run: |
touch bottles/steps_output.txt
cat bottles/steps_output.txt
rm bottles/steps_output.txt
- name: Output brew linkage result
if: always()
run: |
cat bottles/linkage_output.txt
rm bottles/linkage_output.txt
- name: Output brew bottle result
if: always()
run: |
cat bottles/bottle_output.txt
rm bottles/bottle_output.txt
- name: Run brew test-bot ${{ needs.set-environment.outputs.test-bot-dependents-args }} --skipped-or-failed-formulae=${{ steps.brew-test-bot-formulae.outputs.skipped_or_failed_formulae }}
if: ${{(success() || failure()) && fromJson(needs.set-environment.outputs.test-dependents)}}
run: |
cd bottles
brew test-bot ${{ needs.set-environment.outputs.test-bot-dependents-args }} --skipped-or-failed-formulae=${{ steps.brew-test-bot-formulae.outputs.skipped_or_failed_formulae }}
- name: Failures summary for brew test-bot ${{ needs.set-environment.outputs.test-bot-dependents-args }} --skipped-or-failed-formulae=${{ steps.brew-test-bot-formulae.outputs.skipped_or_failed_formulae }}
if: ${{always() && fromJson(needs.set-environment.outputs.test-dependents) == true}}
run: |
touch bottles/steps_output.txt
cat bottles/steps_output.txt
rm bottles/steps_output.txt
- name: Upload logs
if: always()
uses: actions/upload-artifact@v3
with:
if-no-files-found: ignore
name: logs-${{ matrix.runner }}
path: ${{matrix.workdir || github.workspace}}/bottles/logs
- name: Delete logs and home
if: always()
run: |
rm -rvf bottles/logs
rm -rvf bottles/home
- name: Count bottles
id: bottles
if: always()
run: |
cd bottles
count=$(ls *.json | wc -l | xargs echo -n)
echo "$count bottles"
echo "count=$count" | sudo tee -a "$GITHUB_OUTPUT"
failures=$(ls failed/*.json | wc -l | xargs echo -n)
echo "$failures failed bottles"
echo "failures=$failures" | sudo tee -a "$GITHUB_OUTPUT"
- name: Upload failed bottles
if: always() && steps.bottles.outputs.failures > 0
uses: actions/upload-artifact@v3
with:
name: bottles-${{ matrix.runner }}
path: ${{matrix.workdir || github.workspace}}/bottles/failed
# Must be run before the `Upload bottles` step so that failed
# bottles are not included in the `bottles` artifact.
- name: Delete failed bottles
if: always()
run: rm -rvf bottles/failed
- name: Upload bottles
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
if [ -L "$GITHUB_WORKSPACE" ]; then
sudo rm -rf "$GITHUB_WORKSPACE"
fi
add-label:
needs: build-formula
if: github.event_name == 'pull_request' && !contains(github.event.head_commit.message, 'skip-build') && github.event.pull_request.user.login == github.repository_owner
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Add Label
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh pr edit "$(echo $GITHUB_REF | awk 'BEGIN { FS = "/" } ; { print $3 }')" --add-label "build-complete"