From 9e10384588b31dc7ab399bac2872c0c60efe5b14 Mon Sep 17 00:00:00 2001 From: Bill Traynor Date: Mon, 30 Jan 2023 12:50:37 -0500 Subject: Adding back build-pdf.yml Added back build-pdf.yml in order to be able to trigger it from actions. --- .github/workflows/build-pdf.yml | 75 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 .github/workflows/build-pdf.yml (limited to '.github') diff --git a/.github/workflows/build-pdf.yml b/.github/workflows/build-pdf.yml new file mode 100644 index 0000000..ba7929f --- /dev/null +++ b/.github/workflows/build-pdf.yml @@ -0,0 +1,75 @@ +# This workflow installs dependencies for PDF generation, generates the PDF, +# and uploads the PDF as an artifact. + +name: Build Document PDF + +on: + workflow_dispatch: + workflow_call: + outputs: + name: + description: "The base name of the pdf file (without .pdf extensions)" + value: ${{ jobs.build.outputs.name }} + pdf-name: + description: "The name of the pdf file (with .pdf extensions)" + value: ${{ jobs.build.outputs.pdf-name }} + +jobs: + build: + runs-on: ubuntu-latest + + env: + NAME: unpriv-isa-asciidoc + APT_PACKAGES_FILE: ${{ github.workspace }}/dependencies/apt_packages.txt + BUNDLE_GEMFILE: ${{ github.workspace }}/dependencies/Gemfile + BUNDLE_BIN: ${{ github.workspace }}/bin + NPM_PACKAGE_FOLDER: ${{ github.workspace }}/dependencies + outputs: + name: ${{ steps.step1.outputs.name }} + pdf-name: ${{ steps.step2.outputs.pdf-name }} + if: contains(github.ref, 'riscv-isa-asciidoc') + steps: + - name: Set outputs.name + id: step1 + run: echo "name=$NAME" >> $GITHUB_OUTPUT + - name: Set outputs.pdf-name + id: step2 + run: echo "pdf-name=$NAME.pdf" >> $GITHUB_OUTPUT + - name: Checkout repository + uses: actions/checkout@v3 + with: + submodules: 'true' + - name: Install Ubuntu packages + run: | + sudo apt-get update + grep -vE '^#' ${APT_PACKAGES_FILE} | xargs sudo apt-get install --yes --no-install-recommends + # Ruby for asciidoctor + - name: Setup Ruby and Gemfile content + uses: ruby/setup-ruby@v1 + with: + ruby-version: "2.6" + bundler-cache: true + # Node.js for wavedrom + - uses: actions/cache@v3 + with: + path: ~/.npm + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: '16' + - name: Install Node.js dependencies + run: npm install ${NPM_PACKAGE_FOLDER} + - name: Generate PDF + working-directory: ./build + run: | + PATH=${PATH}:${BUNDLE_BIN}:$(npm bin) \ + make + - name: Archive PDF result + uses: actions/upload-artifact@v3 + with: + name: ${{ env.NAME }}.pdf + path: ./build/${{ env.NAME }}.pdf + retention-days: 7 \ No newline at end of file -- cgit v1.1