From ed98b815be8f77d1d93e7bf6db788117d7678f6e Mon Sep 17 00:00:00 2001 From: ssolson Date: Wed, 5 Feb 2025 09:54:23 -0500 Subject: [PATCH] Manual Documentation Preview Action (#84) * manual preview action * delete all previews on merge or close --- .github/workflows/cleanup-preview.yml | 27 ++++++++++++ .github/workflows/manual-deploy.yml | 59 +++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 .github/workflows/cleanup-preview.yml create mode 100644 .github/workflows/manual-deploy.yml diff --git a/.github/workflows/cleanup-preview.yml b/.github/workflows/cleanup-preview.yml new file mode 100644 index 0000000..93e6181 --- /dev/null +++ b/.github/workflows/cleanup-preview.yml @@ -0,0 +1,27 @@ +name: Cleanup PR Preview + +on: + pull_request: + types: [closed] + +jobs: + cleanup: + runs-on: ubuntu-latest + steps: + - name: Setup SSH + run: | + mkdir -p ~/.ssh + echo "${{ secrets.GH_PAGES_DEPLOY_KEY }}" > ~/.ssh/id_rsa + chmod 600 ~/.ssh/id_rsa + ssh-keyscan github.com >> ~/.ssh/known_hosts + + - name: Delete All Previews + run: | + git clone --single-branch --branch gh-pages git@github.com:MHKiT-Software/MHKiT.git gh-pages + cd gh-pages + rm -rf pr-previews/ + git config user.name "GitHub Actions Bot" + git config user.email "<>" + git add -A + git commit -m "Remove all previews after merging PR #${{ github.event.pull_request.number }}" || echo "No cleanup needed" + git push diff --git a/.github/workflows/manual-deploy.yml b/.github/workflows/manual-deploy.yml new file mode 100644 index 0000000..d823917 --- /dev/null +++ b/.github/workflows/manual-deploy.yml @@ -0,0 +1,59 @@ +name: Manual Deploy PR Preview + +on: + workflow_dispatch: + inputs: + ref: + description: 'Branch of the PR' + required: true + repository: + description: 'Fork repository' + required: true + pr_number: + description: 'Pull Request Number' + required: true + +jobs: + deploy_preview: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + ref: ${{ github.event.inputs.ref }} + repository: ${{ github.event.inputs.repository }} + submodules: recursive + fetch-depth: 0 + + - name: Setup Conda Environment + uses: conda-incubator/setup-miniconda@v2 + with: + activate-environment: mhkit-docs + environment-file: environment.yml + auto-activate-base: false + + - name: Setup SSH + run: | + mkdir -p ~/.ssh + echo "${{ secrets.GH_PAGES_DEPLOY_KEY }}" > ~/.ssh/id_rsa + chmod 600 ~/.ssh/id_rsa + ssh-keyscan github.com >> ~/.ssh/known_hosts + + - name: Build Documentation + shell: bash -l {0} + run: | + cd docs + rm -rf _build/* + cp -r ../MHKiT-Python/examples/* source/ + sphinx-build -b html source _build/html + cp ../MHKiT-MATLAB/examples/*.html ./_build/html/mhkit-matlab + touch _build/html/.nojekyll + + - name: Deploy PR Preview + uses: peaceiris/actions-gh-pages@v3 + with: + deploy_key: ${{ secrets.GH_PAGES_DEPLOY_KEY }} + publish_dir: ./docs/_build/html + destination_dir: pr-previews/${{ github.event.inputs.pr_number }} + external_repository: MHKiT-Software/MHKiT + keep_files: true + enable_jekyll: false