You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ocrd-galley/.github/workflows/build.yml

91 lines
2.0 KiB
YAML

name: build
on:
workflow_dispatch:
push:
branches:
- 'master'
- 'test/github-actions'
jobs:
matrix:
runs-on: ubuntu-latest
outputs:
core: ${{ steps.step1.outputs.core }}
rest: ${{ steps.step1.outputs.rest }}
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Generate outputs
id: step1
run: |
echo "core=$(./.github/list-subimages --core --json)" >>$GITHUB_OUTPUT
echo "rest=$(./.github/list-subimages --rest --json)" >>$GITHUB_OUTPUT
build-core:
needs: matrix
strategy:
matrix:
subimage: ${{ fromJson(needs.matrix.outputs.core) }}
uses: ./.github/workflows/build-subimage.yml
with:
subimage: ${{ matrix.subimage }}
tags: |
type=sha,format=long
secrets: inherit
build-rest:
needs: build-core
strategy:
matrix:
subimage: ["dinglehopper"]
uses: ./.github/workflows/build-subimage.yml
with:
subimage: ${{ matrix.subimage }}
tags: |
type=sha,format=long
secrets: inherit
test:
needs: build-rest
runs-on: ubuntu-latest
env:
DOCKER_IMAGE_TAG: sha-${{ github.sha }} # needed to run the correct version through the wrapper
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Install wrapper
run: |
sudo apt-get install -y python3-pip
cd wrapper && pip install .
-
name: Test
run: |
ocrd --version
ocrd-dinglehopper --version
# At this point, we have successfully built, uploaded and tested the images. We now just need to add
# tags. We do this by building again, but using the formerly built images to
# cache from.
push-with-tags:
needs: test
strategy:
matrix:
subimage: ["core", "dinglehopper"]
uses: ./.github/workflows/build-subimage.yml
with:
subimage: ${{ matrix.subimage }}
tags: |
type=sha,format=long
type=ref,event=tag
secrets: inherit