forked from eclipse-theia/theia-website
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add workflows for publishing via GH pages
This change adds a Github workflow that builds the website and publishes the build result to branch `gh-pages` for every commit on `master`. In addition, it deploys a preview to https://github.com/eclipse-theia/theia-website-previews. Effectively, this is the first step of changing the hosting of the Theia website from Netlify to Github pages. For more information see https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/issues/3874 This change applies the same technique as used in https://github.com/eclipse-langium/langium-website Co-authored-by: Olaf Lessenich <[email protected]>
- Loading branch information
Showing
4 changed files
with
139 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
name: Deploy PR previews | ||
|
||
on: | ||
pull_request_target: | ||
types: | ||
- opened | ||
- synchronize | ||
- reopened | ||
- closed | ||
|
||
concurrency: preview-${{ github.head_ref }} | ||
|
||
defaults: | ||
run: | ||
shell: bash | ||
|
||
jobs: | ||
build-preview: | ||
if: github.event_name == 'pull_request_target' && github.event.action != 'closed' | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Use Node.js 14.x | ||
uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 #v3 | ||
with: | ||
node-version: '14.x' | ||
registry-url: 'https://registry.npmjs.org' | ||
- name: Checkout | ||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4 | ||
with: | ||
ref: ${{ github.event.pull_request.head.sha }} | ||
- name: Build website | ||
run: | | ||
npm install | ||
PATH_PREFIX="pr-previews/${{ github.event.number }}" npm run build -- --prefix-paths | ||
- name: Upload artifact | ||
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 #v4 | ||
with: | ||
name: "site" | ||
path: ./public | ||
|
||
deploy-preview: | ||
needs: build-preview | ||
runs-on: ubuntu-latest | ||
permissions: | ||
pull-requests: write | ||
environment: | ||
name: pull-request-preview | ||
url: ${{ steps.deployment.outputs.deployment-url }} | ||
steps: | ||
# checkout required for pr-preview-action to succeed, | ||
# while the content will not be used | ||
- name: Checkout | ||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4 | ||
- name: Download the preview page | ||
uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 #v4 | ||
with: | ||
name: "site" | ||
path: ./public | ||
- uses: rossjrw/pr-preview-action@f31d5aa7b364955ea86228b9dcd346dc3f29c408 #v1 | ||
id: deployment | ||
with: | ||
source-dir: ./public | ||
preview-branch: previews | ||
umbrella-dir: pr-previews | ||
deploy-repository: eclipse-theia/theia-website-previews | ||
token: ${{ secrets.DEPLOY_PREVIEW_TOKEN }} | ||
action: auto | ||
|
||
# remove the preview page when the PR got closed | ||
remove-preview: | ||
if: github.event_name == 'pull_request_target' && github.event.action == 'closed' | ||
runs-on: ubuntu-latest | ||
permissions: | ||
pull-requests: write | ||
steps: | ||
# checkout required for pr-preview-action to succeed, | ||
# while the content will not be used | ||
- name: Checkout | ||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4 | ||
- uses: rossjrw/pr-preview-action@f31d5aa7b364955ea86228b9dcd346dc3f29c408 #v1 | ||
id: deployment | ||
with: | ||
preview-branch: previews | ||
umbrella-dir: pr-previews | ||
deploy-repository: eclipse-theia/theia-website-previews | ||
token: ${{ secrets.DEPLOY_PREVIEW_TOKEN }} | ||
action: auto |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
name: Deploy Website | ||
|
||
on: | ||
push: | ||
branches: ["master"] | ||
workflow_dispatch: | ||
|
||
# Allow only one concurrent deployment | ||
# Do not cancel in progress as we want production deployments to complete. | ||
concurrency: | ||
group: "publish" | ||
cancel-in-progress: false | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout website sources | ||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4 | ||
- name: Use Node.js 14.x | ||
uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 #v3 | ||
with: | ||
node-version: 14.x | ||
registry-url: 'https://registry.npmjs.org' | ||
- name: Configure Pages | ||
id: pages | ||
uses: actions/configure-pages@1f0c5cde4bc74cd7e1254d0cb4de8d49e9068c7d #v4 | ||
- name: Build website | ||
run: | | ||
npm install | ||
npm run build | ||
- name: Upload artifact | ||
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa #v3 | ||
with: | ||
path: ./public | ||
|
||
publish: | ||
environment: | ||
name: github-pages | ||
url: ${{ steps.deployment.outputs.page_url }} | ||
runs-on: ubuntu-latest | ||
needs: build | ||
steps: | ||
- name: Deploy to GitHub Pages | ||
id: deployment | ||
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e #v4 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters