First reusable workflow (#5460)

This commit is contained in:
Trask Stalnaker 2022-02-28 09:59:58 -08:00 committed by GitHub
parent e058fa7810
commit d08b4c1423
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 64 additions and 155 deletions

View File

@ -149,61 +149,12 @@ jobs:
with:
arguments: ":smoke-tests:test -PsmokeTestSuite=${{ matrix.smoke-test-suite }}"
setup-muzzle-matrix:
muzzle:
# release branches are excluded
# because any time a new library version is released to maven central it can fail
# which requires unnecessary release branch maintenance, especially for patches
if: ${{ !startsWith(github.ref_name, 'v') }}
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Check out repository
uses: actions/checkout@v2.3.4
- name: Set up JDK 11 for running Gradle
uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11
- name: List instrumentations to file
uses: gradle/gradle-build-action@v2
with:
arguments: instrumentation:listInstrumentations
- id: set-matrix
run: echo "::set-output name=matrix::{\"module\":[\"$(cat instrumentation-list.txt | xargs echo | sed 's/ /","/g')\"]}"
muzzle:
needs: setup-muzzle-matrix
runs-on: ubuntu-latest
strategy:
matrix: ${{fromJson(needs.setup-muzzle-matrix.outputs.matrix)}}
fail-fast: false
steps:
- name: Check out repository
uses: actions/checkout@v2.3.4
- name: Set up JDK 11 for running Gradle
uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11
- name: Set up gradle cache
uses: gradle/gradle-build-action@v2
with:
cache-read-only: true
- name: Run muzzle
# using retry because of sporadic gradle download failures
uses: nick-invision/retry@v2.6.0
with:
# timing out has not been a problem, these jobs typically finish in 2-3 minutes
timeout_minutes: 15
max_attempts: 3
command: ./gradlew ${{ matrix.module }}:muzzle
uses: ./.github/workflows/muzzle.yml
examples:
runs-on: ubuntu-latest

59
.github/workflows/muzzle.yml vendored Normal file
View File

@ -0,0 +1,59 @@
name: Muzzle
on:
workflow_call:
jobs:
setup-matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Check out repository
uses: actions/checkout@v2.3.4
with:
fetch-depth: 0
- name: Set up JDK 11 for running Gradle
uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11
- name: List instrumentations to file
uses: gradle/gradle-build-action@v2
with:
arguments: instrumentation:listInstrumentations
cache-read-only: true
- id: set-matrix
run: echo "::set-output name=matrix::{\"module\":[\"$(cat instrumentation-list.txt | xargs echo | sed 's/ /","/g')\"]}"
run:
needs: setup-matrix
runs-on: ubuntu-latest
strategy:
matrix: ${{fromJson(needs.setup-matrix.outputs.matrix)}}
fail-fast: false
steps:
- name: Check out repository
uses: actions/checkout@v2.3.4
- name: Set up JDK 11 for running Gradle
uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11
- name: Set up gradle cache
uses: gradle/gradle-build-action@v2
with:
cache-read-only: true
- name: Run muzzle
# using retry because of sporadic gradle download failures
uses: nick-invision/retry@v2.6.0
with:
# timing out has not been a problem, these jobs typically finish in 2-3 minutes
timeout_minutes: 15
max_attempts: 3
command: ./gradlew ${{ matrix.module }}:muzzle

View File

@ -144,57 +144,8 @@ jobs:
with:
arguments: ":smoke-tests:test -PsmokeTestSuite=${{ matrix.smoke-test-suite }}"
setup-muzzle-matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Check out repository
uses: actions/checkout@v2.3.4
- name: Set up JDK 11 for running Gradle
uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11
- name: List instrumentations to file
uses: gradle/gradle-build-action@v2
with:
arguments: instrumentation:listInstrumentations
- id: set-matrix
run: echo "::set-output name=matrix::{\"module\":[\"$(cat instrumentation-list.txt | xargs echo | sed 's/ /","/g')\"]}"
muzzle:
needs: setup-muzzle-matrix
runs-on: ubuntu-latest
strategy:
matrix: ${{fromJson(needs.setup-muzzle-matrix.outputs.matrix)}}
fail-fast: false
steps:
- name: Check out repository
uses: actions/checkout@v2.3.4
- name: Set up JDK 11 for running Gradle
uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11
- name: Set up gradle cache
uses: gradle/gradle-build-action@v2
with:
cache-read-only: true
- name: Run muzzle
# using retry because of sporadic gradle download failures
uses: nick-invision/retry@v2.6.0
with:
# timing out has not been a problem, these jobs typically finish in 2-3 minutes
timeout_minutes: 15
max_attempts: 3
command: ./gradlew ${{ matrix.module }}:muzzle
uses: ./.github/workflows/muzzle.yml
examples:
runs-on: ubuntu-latest

View File

@ -197,64 +197,12 @@ jobs:
cache-read-only: true
arguments: ":smoke-tests:test -PsmokeTestSuite=${{ matrix.smoke-test-suite }}"
setup-muzzle-matrix:
muzzle:
# release branches are excluded
# because any time a new library version is released to maven central it can fail
# which requires unnecessary release branch maintenance, especially for patches
if: ${{ !startsWith(github.base_ref, 'v') }}
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Check out repository
uses: actions/checkout@v2.3.4
with:
fetch-depth: 0
- name: Set up JDK 11 for running Gradle
uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11
- name: List instrumentations to file
uses: gradle/gradle-build-action@v2
with:
arguments: instrumentation:listInstrumentations
cache-read-only: true
- id: set-matrix
run: echo "::set-output name=matrix::{\"module\":[\"$(cat instrumentation-list.txt | xargs echo | sed 's/ /","/g')\"]}"
muzzle:
needs: setup-muzzle-matrix
runs-on: ubuntu-latest
strategy:
matrix: ${{fromJson(needs.setup-muzzle-matrix.outputs.matrix)}}
fail-fast: false
steps:
- name: Check out repository
uses: actions/checkout@v2.3.4
- name: Set up JDK 11 for running Gradle
uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11
- name: Set up gradle cache
uses: gradle/gradle-build-action@v2
with:
cache-read-only: true
- name: Run muzzle
# using retry because of sporadic gradle download failures
uses: nick-invision/retry@v2.6.0
with:
# timing out has not been a problem, these jobs typically finish in 2-3 minutes
timeout_minutes: 15
max_attempts: 3
command: ./gradlew ${{ matrix.module }}:muzzle
uses: ./.github/workflows/muzzle.yml
examples:
runs-on: ubuntu-latest