Skip to content

Deploy Jekyll with GitHub Pages dependencies preinstalled #310

Deploy Jekyll with GitHub Pages dependencies preinstalled

Deploy Jekyll with GitHub Pages dependencies preinstalled #310

Workflow file for this run

name: Deploy Jekyll with GitHub Pages dependencies preinstalled
on:
workflow_run:
workflows: ["Receive_PR"]
types:
- completed
workflow_dispatch:
permissions:
contents: write
pages: write
id-token: write
pull-requests: write
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
Extract_Receive_Pr:
runs-on: ubuntu-latest
if: >
(github.event.workflow_run.event == 'pull_request' || github.event.workflow_run.event == 'push') &&
github.event.workflow_run.conclusion == 'success'
steps:
- name: 'Download artifact github pages'
uses: actions/github-script@v6
id: artifactgh-pages
with:
script: |
var artifacts = await github.rest.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: ${{github.event.workflow_run.id }},
});
var matchArtifact = artifacts.data.artifacts.filter((artifact) => {
return artifact.name == "github-pages"
})[0];
var download = await github.rest.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: 'zip',
});
var fs = require('fs');
fs.writeFileSync('${{github.workspace}}/github-pages.zip', Buffer.from(download.data));
return matchArtifact.id
- run: |
unzip github-pages.zip
mkdir web-site
tar -xvf artifact.tar -C web-site/
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: web-site
CommentPr:
runs-on: ubuntu-latest
if: >
github.event.workflow_run.event == 'pull_request' &&
github.event.workflow_run.conclusion == 'success'
steps:
- name: get PR number
uses: actions/github-script@v6
with:
script: |
var artifacts = await github.rest.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: ${{github.event.workflow_run.id }},
});
var matchArtifact = artifacts.data.artifacts.filter((artifact) => {
return artifact.name == "pr_number"
})[0];
var download = await github.rest.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: 'zip',
});
var fs = require('fs');
fs.writeFileSync('${{github.workspace}}/pr_number.zip', Buffer.from(download.data));
return matchArtifact.id
- name: get Pr number
id: prnumber
run: |
unzip pr_number.zip
echo "number=$(cat pr_number.txt)" >> $GITHUB_OUTPUT
- name: Post address
uses: actions/github-script@v6
if: ${{ success()}}
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
body: "The web-site is built. It will be available, after a few minutes, here: https://cgal.github.io/cgal-web/index.html",
issue_number: ${{steps.prnumber.outputs.number}}
});
- name: Post error
uses: actions/github-script@v6
if: ${{ failure()}}
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
body: "There was an error while building the web-site",
issue_number: ${{steps.prnumber.outputs.number}}
});