Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Feature to deploy previews of pull requests #638

Merged
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .github/workflows/cd-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Deploy PR-Preview
Spiral-Memory marked this conversation as resolved.
Show resolved Hide resolved

on:
workflow_run:
workflows: ["Build PR-Preview"]
types:
- completed

permissions:
Spiral-Memory marked this conversation as resolved.
Show resolved Hide resolved
contents: write
pages: write
id-token: write

jobs:
deploy:
if: github.event.workflow_run.conclusion == 'success'
runs-on: ubuntu-latest

steps:
- uses: actions/download-artifact@v4
with:
name: github-pages
path: build/
github-token: ${{github.token}}
repository: ${{github.repository}}
run-id: ${{github.event.workflow_run.id}}

- name: Deploy to GitHub Pages
uses: crazy-max/ghaction-github-pages@v2
with:
target_branch: gh-deploy
build_dir: build/
commit_message: "Deploy to Github Pages"
jekyll: false
keep_history: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
71 changes: 71 additions & 0 deletions .github/workflows/ci-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
name: Build PR-Preview

on:
pull_request_review:
types: submitted

permissions:
Spiral-Memory marked this conversation as resolved.
Show resolved Hide resolved
contents: write
pages: write
id-token: write

concurrency:
Spiral-Memory marked this conversation as resolved.
Show resolved Hide resolved
group: ${{github.workflow}}-${{github.ref}}
cancel-in-progress: true

env:
LAYOUT_EDITOR_BASE_URL: "/EmbeddedChat/pulls/pr-${{github.event.pull_request.number}}/layout_editor"
DOCS_BASEURL: "/EmbeddedChat/pulls/pr-${{github.event.pull_request.number}}/docs"
Spiral-Memory marked this conversation as resolved.
Show resolved Hide resolved

jobs:
build:
if: github.event.review.state == 'approved' && (github.event.review.author_association == 'COLLABORATOR' || github.event.review.author_association == 'OWNER')
runs-on: ubuntu-latest
outputs:
Spiral-Memory marked this conversation as resolved.
Show resolved Hide resolved
pr_number: ${{ steps.set_pr_number.outputs.pr_number }}

steps:
- name: Checkout code
uses: actions/checkout@v2

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "16.19.0"

- name: Install Dependencies
run: yarn install

- name: Build packages
run: yarn build && yarn build:storybook

- name: Setup Node.js for Docs
uses: actions/setup-node@v4
with:
node-version: "18.x"

- name: "Install dependencies for docs"
run: yarn install
working-directory: packages/docs/

- name: Build Docs
run: yarn build
working-directory: packages/docs/

- name: Prepare Build Folder
run: |
mkdir -p build/pulls/pr-${{github.event.pull_request.number}}/
mkdir -p build/pulls/pr-${{github.event.pull_request.number}}/ui-elements
mkdir -p build/pulls/pr-${{github.event.pull_request.number}}/layout_editor
mkdir -p build/pulls/pr-${{github.event.pull_request.number}}/docs
mv -v packages/react/storybook-static/* build/pulls/pr-${{github.event.pull_request.number}}/
mv -v packages/ui-elements/storybook-static/* build/pulls/pr-${{github.event.pull_request.number}}/ui-elements/
mv -v packages/layout_editor/dist/* build/pulls/pr-${{github.event.pull_request.number}}/layout_editor/
mv -v packages/docs/build/* build/pulls/pr-${{github.event.pull_request.number}}/docs/
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: github-pages
path: build/
24 changes: 24 additions & 0 deletions .github/workflows/pr-cleanup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Pull Request Cleanup
on:
pull_request_target:
types: [closed]

jobs:
cleanup:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
ref: gh-deploy

- name: Remove Deployment
Spiral-Memory marked this conversation as resolved.
Show resolved Hide resolved
run: |
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git config --global user.name "github-actions[bot]"
git fetch origin gh-deploy
git checkout gh-deploy
git rm -r pulls/pr-${{github.event.pull_request.number}}
git commit -m "Remove deployment for PR #${{github.event.pull_request.number}}"
git push origin gh-deploy
2 changes: 1 addition & 1 deletion packages/docs/docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ const config = {
url: "https://rocketchat.github.io/",
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: "/EmbeddedChat/docs/",
baseUrl: process.env.DOCS_BASEURL || "/EmbeddedChat/docs/",

// GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these.
Expand Down
2 changes: 1 addition & 1 deletion packages/layout_editor/vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ export default defineConfig({
},
}),
],
base: "/EmbeddedChat/layout_editor"
base: process.env.LAYOUT_EDITOR_BASE_URL || '/EmbeddedChat/layout_editor',
});
Loading