This commit is contained in:
Max Howell 2023-12-13 11:47:32 -05:00 committed by GitHub
parent 9d6112bd9f
commit 641739b6ed
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 47 additions and 40 deletions

View file

@ -73,7 +73,7 @@ function get_matrix(platform: string) {
container: "debian:buster-slim",
"test-os": [os],
"test-container": ["debian:buster-slim", "ubuntu", "archlinux"],
tinyname: "Lnx·x64"
tinyname: "*nix64"
}}
case 'linux/aarch64': {
const os = ["self-hosted", "linux", "ARM64"]
@ -81,6 +81,6 @@ function get_matrix(platform: string) {
os, name,
"test-os": [os],
"test-container": [null],
tinyname: "Lnx·ARM64"
tinyname: "*nix·ARM64"
}}}
}

View file

@ -11,7 +11,7 @@ concurrency:
cancel-in-progress: true
jobs:
get-projects:
ingest:
runs-on: ubuntu-latest
outputs:
projects: ${{ steps.diff.outputs.diff }}
@ -29,13 +29,13 @@ jobs:
done
echo "diff=$RESULT" >> $GITHUB_OUTPUT
pkgit:
pkg:
strategy:
fail-fast: false
needs: get-projects
needs: ingest
permissions:
issues: write
uses: ./.github/workflows/new-version.yml
with:
projects: ${{ needs.get-projects.outputs.projects }}
projects: ${{ needs.ingest.outputs.projects }}
secrets: inherit

View file

@ -22,6 +22,8 @@ jobs:
pkg:
- r-wos.org/gti
- github.com/ggerganov/llama.cpp # has platform restrictions
permissions:
issues: write
with:
pkg: ${{ matrix.pkg }}
dry-run: true

View file

@ -16,7 +16,7 @@ on:
type: string
jobs:
divide:
ingest:
runs-on: ubuntu-latest
outputs:
pkgs: ${{ steps.divide.outputs.pkgs }}
@ -26,26 +26,15 @@ jobs:
echo "pkgs=$var" >> $GITHUB_OUTPUT
id: divide
pkgit:
needs: divide
pkg:
needs: ingest
strategy:
fail-fast: false
matrix:
pkg: ${{ fromJSON(needs.divide.outputs.pkgs) }}
pkg: ${{ fromJSON(needs.ingest.outputs.pkgs) }}
uses: ./.github/workflows/pkg.yml
permissions:
issues: write
with:
pkg: ${{ matrix.pkg }}
secrets: inherit
complain:
needs: pkgit
if: failure()
runs-on: ubuntu-latest
strategy:
fail-fast: false
permissions:
issues: write
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/complain
with:
pkg: ${{ inputs.projects }}

View file

@ -5,20 +5,21 @@ on:
workflow_call:
inputs:
name:
description: >
pretty name for the workflow to make GitHub Actions matrix output
more legible
required: false
description: brewkit platform unique ID
type: string
tinyname:
description: >
GitHub Actions has a non resizable sidebar so we need a shorter name
or its much harder to differentiate the different jobs.
type: string
default: ${{ inputs.name }}
os:
required: true
type: string
container:
required: false
type: string
pkg:
description: eg. `example.com@1.2.3`
required: true
type: string
dry-run:
description: dry runs do not modify bottle storage
@ -26,14 +27,12 @@ on:
default: false
test-os:
description: a JSON array of runner-names
required: true
type: string
test-container:
description: >
A JSON array of docker image names or `[null]`.
Indeed! You cannot leave this as `null` or undefined.
Sorry, GHA is not flexible enough to efficiently work around this.
required: true
type: string
secrets:
APPLE_CERTIFICATE_P12: { required: false }
@ -48,7 +47,7 @@ on:
jobs:
build:
name: build (${{inputs.name}})
name: build ${{inputs.tinyname}}
runs-on: ${{ fromJSON(inputs.os) }}
container: ${{ inputs.container }}
outputs:
@ -85,7 +84,7 @@ jobs:
- uses: pkgxdev/brewkit/upload-build-artifact@v1
test:
name: test (${{inputs.name}}) ${{ matrix.container || ''}} ${{ join(matrix.os) }}
name: test ${{inputs.tinyname}} ${{ matrix.container || ''}} ${{ matrix.container || '' }} ${{ join(matrix.os, '+') }}
needs: build
strategy:
matrix:
@ -104,7 +103,7 @@ jobs:
pkg: ${{ needs.build.outputs.pkg }}
bottle:
name: bottle (${{inputs.name}}+${{matrix.compression}})
name: bottle (${{inputs.tinyname}}.${{matrix.compression}})
needs: [build, test]
strategy:
matrix:
@ -168,7 +167,8 @@ jobs:
id: put
if: ${{ ! inputs.dry-run }}
versions:
publish:
name: publish ${{inputs.tinyname}} ${{ inputs.dry-run && '(dry-run)' }}
runs-on: ubuntu-latest
needs: [bottle, build]
env:
@ -208,3 +208,16 @@ jobs:
/$DIRNAME/versions.txt
${{ needs.bottle.outputs.paths }}
if: ${{ ! inputs.dry-run }}
complain:
needs: [build, test, bottle]
if: failure() && !inputs.dry-run
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/complain
with:
pkg: ${{ inputs.pkg }}
platform: ${{ inputs.name }}

View file

@ -12,7 +12,7 @@ on:
default: false
jobs:
get-matrix:
plan:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.matrix.outputs.matrix }}
@ -22,14 +22,16 @@ jobs:
- run: .github/scripts/get-matrix.ts ${{ inputs.pkg }}
id: matrix
pkgit:
needs: get-matrix
pkg:
needs: plan
name: ${{matrix.platform.tinyname}}
strategy:
fail-fast: false
matrix:
platform: ${{ fromJSON(needs.get-matrix.outputs.matrix) }}
platform: ${{ fromJSON(needs.plan.outputs.matrix) }}
uses: ./.github/workflows/pkg-platform.yml
permissions:
issues: write
with:
pkg: ${{ inputs.pkg }}
name: ${{ matrix.platform.name }}
@ -38,4 +40,5 @@ jobs:
test-os: ${{ toJSON(matrix.platform.test-os) }}
test-container: ${{ toJSON(matrix.platform.test-container) }}
dry-run: ${{ inputs.dry-run }}
tinyname: ${{ matrix.platform.tinyname }}
secrets: inherit