Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI: add reporting to the scheduled check #158644

Merged
merged 2 commits into from
Jan 4, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 60 additions & 7 deletions .github/workflows/scheduled.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ concurrency:
group: scheduled
cancel-in-progress: true

permissions:
issues: write

jobs:
create_matrix:
if: startsWith( github.repository, 'Homebrew/' )
Expand All @@ -31,29 +34,33 @@ jobs:
cask: false
test-bot: false

- id: matrix
- name: Generate matrix
id: matrix
run: |
formula="$(find "$(brew --repo "${TAP}")/Formula" | shuf -n "${TEST_COUNT}" | xargs -I{} basename {} .rb)"
formula="$(find "$(brew --repo "${TAP}")/Formula" -type f | shuf -n "${TEST_COUNT}" | xargs -I{} basename {} .rb)"
# shellcheck disable=SC2086
json="$(
brew info --json=v2 $formula |
jq --compact-output '[.formulae[] | select(.deprecated == false and .disabled == false) | .name]'
jq --compact-output '[.formulae[] | select(.deprecated == false and .disabled == false) | .name]'
)"
echo "json=${json}" >> "$GITHUB_OUTPUT"
audit_online:
if: startsWith( github.repository, 'Homebrew/' )
runs-on: ubuntu-22.04
runs-on: ${{ matrix.os }}
container:
image: ghcr.io/homebrew/ubuntu22.04:master
needs: create_matrix
name: "Online check: ${{ matrix.formula }}"
name: "Online check (${{ matrix.os }}): ${{ matrix.formula }}"
env:
HOMEBREW_GITHUB_API_TOKEN: "${{ github.token }}"
GH_TOKEN: "${{ github.token }}"
REPORTING_ISSUE: 139929
strategy:
fail-fast: false
matrix:
formula: ${{ fromJson(needs.create_matrix.outputs.json) }}
os: [ubuntu-22.04]
steps:
- name: Set up Homebrew
id: set-up-homebrew
Expand All @@ -63,8 +70,54 @@ jobs:
cask: false
test-bot: false

- name: Check formula for missing upstreams etc.
run: brew audit --online --skip-style --only github_repository_archived,gitlab_repository_archived,homepage ${{ matrix.formula }}
- name: Check formula source is not archived.
id: archived
if: matrix.os != 'macos-latest'
run: brew audit --online --skip-style --only github_repository_archived,gitlab_repository_archived ${{ matrix.formula }}

- name: Report online issues
if: ${{ failure() && steps.archived.conclusion == 'failure' }}
run: |
gh issue comment "$REPORTING_ISSUE" \
--repo homebrew/homebrew-core \
--body "${{ matrix.formula }} should be archived. Check ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
- name: Check formula for unavailable homepage.
id: homepage
if: matrix.os != 'macos-latest'
run: brew audit --online --skip-style --only homepage ${{ matrix.formula }}

- name: Report homepage issues
if: ${{ failure() && steps.homepage.conclusion == 'failure' }}
run: |
gh issue comment "$REPORTING_ISSUE" \
--repo homebrew/homebrew-core \
--body "${{ matrix.formula }} has homepage issues. Check ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
- name: Check formula for missing sources.
id: fetch
if: matrix.os != 'macos-latest'
run: brew fetch -s ${{ matrix.formula }}

- name: Report fetch issues
if: ${{ failure() && steps.fetch.conclusion == 'failure' }}
run: |
gh issue comment "$REPORTING_ISSUE" \
--repo homebrew/homebrew-core \
--body "${{ matrix.formula }} source has problems. Check ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
- name: Try and build formula.
id: build
env:
HOMEBREW_NO_INSTALL_FROM_API: '1'
run: brew install -s ${{ matrix.formula }}

# TODO: Re-enable once it skips formulae that are not fir the current OS
# - name: Report build issues
# if: ${{ failure() && steps.build.conclusion == 'failure' }}
# run: |
# gh issue comment "$REPORTING_ISSUE" \
# --repo homebrew/homebrew-core \
# --body "${{ matrix.formula }} failed to build on ${{ matrix.os }}. Check ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"


SMillerDev marked this conversation as resolved.
Show resolved Hide resolved
Loading