-
Notifications
You must be signed in to change notification settings - Fork 1
129 lines (122 loc) · 4.69 KB
/
jekyll-gh-pages.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# Sample workflow for building and deploying a Jekyll site to GitHub Pages
name: Deploy Jekyll GitHub Pages
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions: write-all
on:
# Runs on pushes targeting the default branch
push:
branches: ["master", "compiler"]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
# permissions:
# contents: read
# pages: write
# id-token: write
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
# Build job
build:
runs-on: ubuntu-latest
env:
NODE_OPTIONS: "--max_old_space_size=8192" #8192 4096 --expose-gc
YARN_ENABLE_IMMUTABLE_INSTALLS: false
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN || secrets.GITHUB_TOKEN || github.token }}
node-version: 18.x
YARN_CHECKSUM_BEHAVIOR: update
steps:
- name: Checkout
uses: actions/checkout@v4
with:
token: ${{ env.ACCESS_TOKEN }}
ref: "master"
- name: Checkout
uses: actions/checkout@v4
with:
token: ${{ env.ACCESS_TOKEN }}
ref: 'gh-pages'
path: .deploy_git
- name: initialize site
run: |
git config --global user.name 'dimaslanjaka'
git config --global user.email 'dimaslanjaka@gmail.com'
git rm -rf .
git checkout origin/gh-pages .gitignore .nojekyll
working-directory: .deploy_git
- name: Set env
id: set-env
shell: bash
run: |
git config --global user.name 'dimaslanjaka'
git config --global user.email 'dimaslanjaka@gmail.com'
echo "GITHUB_SHA_SHORT=$(echo $GITHUB_SHA | cut -c 1-6)" >> $GITHUB_ENV
echo "GITHUB_BRANCH=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV
echo "GITHUB_COMMIT_URL=https://github.com/${{github.repository}}/commit/$(echo $GITHUB_SHA)" >> $GITHUB_ENV
echo "GITHUB_RUNNER_URL=https://github.com/${{github.repository}}/commit/${{github.sha}}/checks/${{github.run_id}}" >> $GITHUB_ENV
- run: git fetch --all
# - run: git checkout -b compiler origin/compiler
- run: git checkout --orphan compiler
- run: git clean -f -d
- run: git reset --hard origin/compiler
# - run: git branch
- run: git merge master -X theirs --allow-unrelated-histories
# - run: git checkout --theirs origin/master *.md
- uses: actions/setup-node@v4
with:
node-version: ${{ env.node-version }}
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.2.3" # Not needed with a .ruby-version file
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- run: bundle lock --add-platform x86_64-linux
- run: bundle install
- run: bundle exec jekyll build
env:
JEKYLL_ENV: production
# - name: Setup Pages
# uses: actions/configure-pages@v5
# - name: Build with Jekyll
# uses: actions/jekyll-build-pages@v1
# with:
# source: ./
# destination: ./_site
# - name: Upload artifact
# uses: actions/upload-pages-artifact@v3
# with:
# # Upload folder
# path: "_site"
# name: "github-pages"
- name: copy generated site
run: cp -rf _site/. .deploy_git/
- run: |
git config --global user.name 'dimaslanjaka'
git config --global user.email 'dimaslanjaka@gmail.com'
echo '' > .nojekyll
git add .
git commit -m "chore: released from ${{ env.GITHUB_COMMIT_URL }}" -m "commit hash: ${{ env.GITHUB_SHA_SHORT }}" -m "commit url: ${{ env.GITHUB_COMMIT_URL }}" -m "runner: ${{ env.GITHUB_RUNNER_URL }}"
git push
working-directory: .deploy_git
# Deployment job
# deploy:
# environment:
# name: github-pages
# url: ${{ steps.deployment.outputs.page_url }}
# env:
# NODE_OPTIONS: "--max_old_space_size=8192" #8192 4096 --expose-gc
# YARN_ENABLE_IMMUTABLE_INSTALLS: false
# ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN || secrets.GITHUB_TOKEN || github.token }}
# node-version: 18.x
# YARN_CHECKSUM_BEHAVIOR: update
# runs-on: ubuntu-latest
# needs: build
# steps:
# - name: Deploy to GitHub Pages
# id: deployment
# uses: actions/deploy-pages@v4
# with:
# token: ${{ env.ACCESS_TOKEN }}
# artifact_name: "github-pages"