From 2347bd363544c5bfbb17cfc70342bde1247ba571 Mon Sep 17 00:00:00 2001 From: Teodor Dutu Date: Mon, 26 Feb 2024 14:25:16 +0200 Subject: [PATCH] workflows: Add PR deployment Add `.yml` file to deploy each pr upon setting the `needs-rendering` label Signed-off-by: Teodor Dutu --- .github/workflows/pr-deployment.yml | 67 +++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/pr-deployment.yml diff --git a/.github/workflows/pr-deployment.yml b/.github/workflows/pr-deployment.yml new file mode 100644 index 00000000..ca25114a --- /dev/null +++ b/.github/workflows/pr-deployment.yml @@ -0,0 +1,67 @@ +name: OpenEduHub - PR Deployment + +on: + pull_request_target: + types: [labeled] + +jobs: + deploy: + if: ${{ github.event.label.name == 'needs-rendering' }} + name: Deploy to GitHub Pages + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + steps: + - uses: actions/checkout@v3 + with: + path: ./repo + repository: ${{ github.event.pull_request.head.repo.full_name }} + ref: ${{ github.head_ref }} + + - run: | + cd repo + REF=$(echo ${{ github.event.number }} | sed 's/\//\\\//g') + sed -i "s/baseUrl: \/hardware-software-interface\//baseUrl: \/hardware-software-interface\/$REF\//" config.yaml + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Build and push + uses: docker/build-push-action@v3 + with: + context: ./repo + file: ./repo/Dockerfile + push: false + load: true + tags: hardware-software-interface/docusaurus:latest + cache-from: type=gha + cache-to: type=gha + + - name: Load Image + run: | + mkdir -p ${{ github.event.number }} + docker image list + docker run -v $GITHUB_WORKSPACE/repo:/content -v $GITHUB_WORKSPACE/${{ github.event.number }}:/output hardware-software-interface/docusaurus:latest + + # Popular action to deploy to GitHub Pages: + # Docs: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + # Build output to publish to the `gh-pages-pr` branch: + publish_dir: ./${{ github.event.number }} + destination_dir: ${{ github.event.number }} + # The following lines assign commit authorship to the official + # GH-Actions bot for deploys to `gh-pages` branch: + # https://github.com/actions/checkout/issues/13#issuecomment-724415212 + # The GH actions bot is used by default if you didn't specify the two fields. + # You can swap them out with your own user credentials. + publish_branch: gh-pages + + - name: Add Comment to PR + uses: thollander/actions-comment-pull-request@v2 + with: + message: | + Published at https://${{ github.repository_owner }}.github.io/hardware-software-interface/${{ github.event.number }}/