From 1525422ab34b2e1842f20873bae73aedeff2ff29 Mon Sep 17 00:00:00 2001 From: Alexander Blair Date: Mon, 23 Sep 2024 23:43:34 +0100 Subject: [PATCH] Add moosedocs build action --- .github/workflows/main.yml | 36 ++++++ .github/workflows/pages.yml | 107 ++++++++++++++++++ .../moosedocs_git_hub_pages_test/Dockerfile | 24 ++++ 3 files changed, 167 insertions(+) create mode 100644 .github/workflows/main.yml create mode 100644 .github/workflows/pages.yml create mode 100644 docker/moosedocs_git_hub_pages_test/Dockerfile diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..3c9188c --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,36 @@ +--- +name: BuildDocs +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + docker-build-test-ubuntu: + runs-on: ubuntu-latest + name: BuildDocsUbuntu + env: + PRCOMMITSHA: ${{ github.event.pull_request.head.sha }} + PRREPOSITORY: ${{ github.event.pull_request.head.repo.full_name }} + steps: + - name: Get Docker image + id: meta + uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 + with: + images: idaholab/moose + # First check out the repository to get the docker file + - name: Checkout + uses: actions/checkout@v4 + # Print the context for this GitHub workflow + - name: PrintGithubContext + run: echo "${PRCOMMITSHA:-$GITHUB_SHA}" "${PRREPOSITORY:-$GITHUB_REPOSITORY}" + # Now build in a container with all deps + - name: DockerBuildTest + run: | + docker build -t ci-moosedocstest \ + --build-arg build_git_sha="${PRCOMMITSHA:-$GITHUB_SHA}" \ + --build-arg build_git_repo="${PRREPOSITORY:-$GITHUB_REPOSITORY}" \ + docker/moosedocs_git_hub_pages_test diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..ba14e08 --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,107 @@ +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +# Sample workflow for building and deploying MooseDocs site to GitHub Pages +name: Deploy MooseDocs to Pages + +on: + push: + branches: ["main"] + paths: + - "doc/**" + pull_request: + branches: ["main"] + paths: + - "doc/**" + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow one concurrent deployment +concurrency: + group: "pages" + cancel-in-progress: true + +jobs: + # Build job + build-docs: + runs-on: ubuntu-latest + name: BuildDocsUbuntu + env: + PRCOMMITSHA: ${{ github.event.pull_request.head.sha }} + PRREPOSITORY: ${{ github.event.pull_request.head.repo.full_name }} + steps: + - name: Get Docker image + id: meta + uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 + with: + images: idaholab/moose + - name: Build docs + id: meta + uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 + with: + images: idaholab/moose + # First check out the repository to get the docker file + - name: Checkout + uses: actions/checkout@v4 + # Print the context for this GitHub workflow + - name: PrintGithubContext + run: echo "${PRCOMMITSHA:-$GITHUB_SHA}" "${PRREPOSITORY:-$GITHUB_REPOSITORY}" + # Now build in a container with all deps + - name: DockerBuildDocs + run: docker build -t ci-docs-ubuntu \ + --build-arg build_git_sha="${PRCOMMITSHA:-$GITHUB_SHA}" \ + --build-arg build_git_repo="${PRREPOSITORY:-$GITHUB_REPOSITORY}" \ + docker/moosedocs_git_hub_pages_test + - name: Upload artifact + # Automatically uploads an artifact from the './_site' directory by default + uses: actions/upload-pages-artifact@v4 + with: + path: "docs/_site/" + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build-docs + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 + + + # defaults: + # run: + # working-directory: docs + # steps: + # - name: Checkout + # uses: actions/checkout@v3 + # - name: Setup Ruby + # uses: ruby/setup-ruby@v1 + # with: + # ruby-version: '3.1' # Not needed with a .ruby-version file + # bundler-cache: true # runs 'bundle install' and caches installed gems automatically + # cache-version: 0 # Increment this number if you need to re-download cached gems + # working-directory: '${{ github.workspace }}/docs' + # - name: Setup Pages + # id: pages + # uses: actions/configure-pages@v3 + # - name: Build with Jekyll + # # Outputs to the './_site' directory by default + # run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}" + # env: + # JEKYLL_ENV: production + # - name: Upload artifact + # # Automatically uploads an artifact from the './_site' directory by default + # uses: actions/upload-pages-artifact@v4 + # with: + # path: "docs/_site/" diff --git a/docker/moosedocs_git_hub_pages_test/Dockerfile b/docker/moosedocs_git_hub_pages_test/Dockerfile new file mode 100644 index 0000000..3a572ac --- /dev/null +++ b/docker/moosedocs_git_hub_pages_test/Dockerfile @@ -0,0 +1,24 @@ +# Build and test MooseDocsGitHubPagesTest image +# Get base image +FROM idaholab/moose + +# By default four cores are used to compile +ARG compile_cores=4 + +# By default checkout main branch +ARG build_git_sha=main +ARG build_git_repo=alexanderianblair/moosedocs_git_hub_pages_test + +# By default we install everything under /opt +ARG WORKDIR=opt + +# Get MooseDocsGitHubPagesTest +WORKDIR /$WORKDIR +RUN git clone https://github.com/$build_git_repo +WORKDIR /$WORKDIR/moosedocs_git_hub_pages_test +RUN git checkout $build_git_sha + +# Build MooseDocsGitHubPagesTest +WORKDIR /$WORKDIR/moosedocs_git_hub_pages_test +RUN make -j$compile_cores +RUN make -j$compile_cores doc \ No newline at end of file