chore: add DOCUMENT::PDF module with PDF handling (#30)
#185
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} |