From b62e9b9b903ac3a5f9bf2e6b58efb20fefc98c9f Mon Sep 17 00:00:00 2001 From: Randolph Sapp Date: Tue, 19 Nov 2024 01:20:56 -0600 Subject: [PATCH] ci(builds): automated builds and deployment to pages Use a matrix to parallelize building the docs for listed DEVFAMILY and OS combinations. Aggregate the results to build an expected pages artifact. Deploy the monolithic artifact to GitHub pages. If any platform fails for any reason, the arguments and logs for that build will be logged under a separate section of this workflow, and the results should not be deployed. We can't use a separate workflow for the deploy step just yet because actions/deploy-pages does not support fetching artifacts from other workflow runs. Signed-off-by: Randolph Sapp --- .github/workflows/build.yml | 98 +++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..aa2c75626 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,98 @@ +--- +name: "build" + +on: + push: + branches: [master] + +concurrency: + group: ${{ github.ref_name }} + cancel-in-progress: true + +defaults: + run: + shell: bash + +jobs: + build: + name: Build Linux Documents + runs-on: ubuntu-latest + container: + image: ghcr.io/texasinstruments/processor-sdk-doc:latest + options: --entrypoint /bin/bash + strategy: + matrix: + os: [linux] + device: + - AM335X + - AM437X + - AM57X + - AM62AX + - AM62PX + - AM62X + - AM64X + - AM65X + - AM67 + - AM68 + - AM69 + - CORESDK + - DRA821A + - GEN + - J7200 + - J721E + - J721S2 + - J722S + - J742S2 + - J784S4 + include: + - os: android + device: AM62PX + - os: android + device: AM62X + - os: android + device: GEN + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Build ${{ matrix.device }} + run: | + make DEVFAMILY=${{ matrix.device }} OS=${{ matrix.os }} \ + VERSION=${{ github.ref_name }} + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.device }}-${{ matrix.os }} + path: build/ + retention-days: 1 + + agregate: + name: Agregate build artifacts + runs-on: ubuntu-latest + needs: build + + steps: + - name: Download all artifacts + uses: actions/download-artifact@v4 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + path: build + merge-multiple: true + + - name: Upload static files as single artifact + uses: actions/upload-pages-artifact@v3 + with: + path: build + + deploy: + name: Deploy + runs-on: ubuntu-latest + permissions: + pages: write + id-token: write + + steps: + - name: Update github page deployment + uses: actions/deploy-pages@v4