Skip to content

chore: add DOCUMENT::PDF module with PDF handling (#30) #185

chore: add DOCUMENT::PDF module with PDF handling (#30)

chore: add DOCUMENT::PDF module with PDF handling (#30) #185

Workflow file for this run

name: Build
on:
push:
branches:
- main
- master
pull_request:
permissions:
contents: read
jobs:
discover-modules:
name: Discover modules
runs-on: ubuntu-latest
outputs:
modules: ${{ steps.discover.outputs.modules }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Discover modules
id: discover
shell: bash
run: |
modules_json="$(
make modules \
| jq -R . \
| jq -s -c .
)"
echo "modules=$modules_json" >> "$GITHUB_OUTPUT"
echo "Discovered modules: $modules_json"
discover-packages:
name: Discover packages
runs-on: ubuntu-latest
outputs:
packages: ${{ steps.discover.outputs.packages }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Discover packages
id: discover
shell: bash
run: |
packages_json="$(
make packages \
| jq -R . \
| jq -s -c .
)"
echo "packages=$packages_json" >> "$GITHUB_OUTPUT"
echo "Discovered packages: $packages_json"
build:
name: Build (${{ matrix.module }})
runs-on: ubuntu-latest
needs: discover-modules
strategy:
fail-fast: false
matrix:
module: ${{ fromJson(needs.discover-modules.outputs.modules) }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.work
cache: true
- name: Build module
run: make build ${{ matrix.module }}
test:
name: Unit Test (${{ matrix.module }})
runs-on: ubuntu-latest
needs: discover-modules
strategy:
fail-fast: false
matrix:
module: ${{ fromJson(needs.discover-modules.outputs.modules) }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.work
cache: true
- name: Unit test module
run: make test-unit ${{ matrix.module }}
lint:
name: Lint (${{ matrix.module }})
runs-on: ubuntu-latest
needs: discover-modules
strategy:
fail-fast: false
matrix:
module: ${{ fromJson(needs.discover-modules.outputs.modules) }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.work
cache: true
- name: Install tools
run: make install-tools
- name: Lint module
run: make lint ${{ matrix.module }}
build-packages:
name: Build Package (${{ matrix.package }})
runs-on: ubuntu-latest
needs: discover-packages
strategy:
fail-fast: false
matrix:
package: ${{ fromJson(needs.discover-packages.outputs.packages) }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.work
cache: true
- name: Build package
run: make build-packages ${{ matrix.package }}
test-packages:
name: Unit Test Package (${{ matrix.package }})
runs-on: ubuntu-latest
needs: discover-packages
strategy:
fail-fast: false
matrix:
package: ${{ fromJson(needs.discover-packages.outputs.packages) }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.work
cache: true
- name: Unit test package
run: make test-packages ${{ matrix.package }}
lint-packages:
name: Lint Package (${{ matrix.package }})
runs-on: ubuntu-latest
needs: discover-packages
strategy:
fail-fast: false
matrix:
package: ${{ fromJson(needs.discover-packages.outputs.packages) }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.work
cache: true
- name: Install tools
run: make install-tools
- name: Lint package
run: make lint-packages ${{ matrix.package }}