forked from tahoe-lafs/web-landing-page
Rename Gitea to Forgejo
Signed-off-by: Benoit Donneaux <benoit@leastauthority.com>
This commit is contained in:
parent
52382d65e3
commit
45b311c638
3 changed files with 13 additions and 13 deletions
28
.forgejo/pr-commenter.yml
Normal file
28
.forgejo/pr-commenter.yml
Normal file
|
@ -0,0 +1,28 @@
|
|||
comment:
|
||||
glob-options:
|
||||
dot: true
|
||||
snippets:
|
||||
- id: image-{{ imageOutcome }}
|
||||
files:
|
||||
- '**'
|
||||
body: |
|
||||
#### :hammer: Docker build `{{ imageOutcome }}`
|
||||
|
||||
- id: build-{{ buildOutcome }}
|
||||
files:
|
||||
- '**'
|
||||
body: |
|
||||
#### :wrench: Jekyll build `{{ buildOutcome }}`
|
||||
|
||||
- id: deploy-{{ deployOutcome }}
|
||||
files:
|
||||
- '**'
|
||||
body: |
|
||||
#### :rocket: Jekyll deploy `{{ deployOutcome }}`
|
||||
#### :link: Preview site [here](https://{{ deployWebHost }}{{ deployWebContext }})
|
||||
|
||||
- id: pusher-{{ gitActor }}-{{ gitEventName }}-{{ gitRunNumber }}
|
||||
files:
|
||||
- '**'
|
||||
body: |
|
||||
*Pusher: @{{ gitActor }}, Action: `{{ gitEventName }}`, Workflow: `{{ gitWorkflow }}`, Run: {{ gitRunNumber }}*
|
98
.forgejo/workflows/jekyll.yaml
Normal file
98
.forgejo/workflows/jekyll.yaml
Normal file
|
@ -0,0 +1,98 @@
|
|||
name: Jekyll
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
|
||||
env:
|
||||
_UID: 1000
|
||||
_GID: 1000
|
||||
WEB_DOMAIN: tahoe-lafs.org
|
||||
WEB_HOST: webforge.of.tahoe-lafs.org
|
||||
WEB_USER: bot-www
|
||||
WEB_DIR: /var/www
|
||||
jobs:
|
||||
jekyll:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Check out repository
|
||||
id: checkout
|
||||
uses: actions/checkout@v4
|
||||
github-server-url: 'https://forge.of.tahoe-lafs.org/'
|
||||
- name: Change file ownership
|
||||
id: file_ownership
|
||||
run: |
|
||||
chown -R ${_UID}:${_GID} .
|
||||
- name: Install requirements
|
||||
id: install_requirements
|
||||
run: |
|
||||
apt-get -q update
|
||||
apt-get -q install -y docker-compose rsync
|
||||
apt-get -q clean
|
||||
- name: Verify docker
|
||||
id: verify_docker
|
||||
run: |
|
||||
docker run --rm hello-world:latest > /dev/null
|
||||
docker rmi hello-world:latest > /dev/null
|
||||
docker version
|
||||
docker-compose version
|
||||
docker volume ls
|
||||
- name: Build Jekyll image
|
||||
id: build_image
|
||||
run: |
|
||||
# The environment variables _UID and _GID can impact this image
|
||||
docker-compose build jekyll
|
||||
- name: Build Jekyll site
|
||||
id: build_site
|
||||
run: |
|
||||
# Overwrite the baseurl for preview only
|
||||
if [ "${{ forge.event_name }}" = 'pull_request' ]; then
|
||||
echo "Overwriting baseurl for pull_request ${{ forge.event.pull_request.number }}"
|
||||
sed -i -r -e 's/^baseurl:\s*"([^"]*)"/baseurl: "\1\/${{ forge.event.pull_request.number }}"/' _config.yml
|
||||
grep "^baseurl:" _config.yml
|
||||
fi
|
||||
docker-compose run --rm -v "${JOB_CONTAINER_NAME}:/site" -w /site \
|
||||
jekyll build --verbose
|
||||
- name: Deploy Jekyll site
|
||||
id: deploy_site
|
||||
run: |
|
||||
if [ "${{ forge.ref }}" = 'refs/heads/main' ]; then
|
||||
WEB_ROOT="${WEB_DIR}/live"
|
||||
WEB_VHOST="home.of.${WEB_DOMAIN}"
|
||||
WEB_CONTEXT='/'
|
||||
else
|
||||
WEB_ROOT="${WEB_DIR}/preview"
|
||||
WEB_VHOST="preview.of.${WEB_DOMAIN}"
|
||||
WEB_CONTEXT='/${{ forge.event.pull_request.number }}/'
|
||||
fi
|
||||
# Save those variabes in the environment for the next steps
|
||||
echo "WEB_HOST=${WEB_HOST}" >> $GITHUB_ENV
|
||||
echo "WEB_VHOST=${WEB_VHOST}" >> $GITHUB_ENV
|
||||
echo "WEB_CONTEXT=${WEB_CONTEXT}" >> $GITHUB_ENV
|
||||
# Prepare ssh key
|
||||
echo "${{ secrets.WWW_DEPLOY_KEY }}" > ~/.ssh/id_ed25519
|
||||
chmod 600 ~/.ssh/id_ed25519
|
||||
# Synchronize the local and the remote site
|
||||
rsync -halvi --delete \
|
||||
-e "ssh -a -x -o StrictHostKeyChecking=no" \
|
||||
./_site/ "${WEB_USER}@${WEB_HOST}:${WEB_ROOT}${WEB_CONTEXT}"
|
||||
- name: Comment pull request
|
||||
id: comment_pull_request
|
||||
if: ${{ always() && forge.event_name == 'pull_request' }}
|
||||
uses: https://github.com/exercism/pr-commenter-action@v1.5.1
|
||||
with:
|
||||
template-variables: |
|
||||
{
|
||||
"imageOutcome": "${{ steps.build_image.outcome }}",
|
||||
"buildOutcome": "${{ steps.build_site.outcome }}",
|
||||
"deployOutcome": "${{ steps.deploy_site.outcome }}",
|
||||
"deployWebHost": "${{ env.WEB_VHOST }}",
|
||||
"deployWebContext": "${{ env.WEB_CONTEXT }}",
|
||||
"gitActor": "${{ forge.actor }}",
|
||||
"gitEventName": "${{ forge.event_name }}",
|
||||
"gitWorkflow": "${{ forge.workflow }}",
|
||||
"gitRunNumber": "${{ forge.run_number }}",
|
||||
"gitRunAttempt": "${{ forge.run_attempt }}"
|
||||
}
|
||||
config-file: ".forgejo/pr-commenter.yml"
|
35
.forgejo/workflows/jekyll_cleanup.yml
Normal file
35
.forgejo/workflows/jekyll_cleanup.yml
Normal file
|
@ -0,0 +1,35 @@
|
|||
name: Jekyll cleanup
|
||||
|
||||
# only trigger on pull request closed events
|
||||
on:
|
||||
pull_request:
|
||||
types: [ closed ]
|
||||
|
||||
env:
|
||||
WEB_HOST: webforge.of.tahoe-lafs.org
|
||||
WEB_USER: www
|
||||
WEB_ROOT: /var/www/preview
|
||||
WEB_CONTEXT: "/${{ forge.event.pull_request.number }}/"
|
||||
jobs:
|
||||
jekyll_cleanup:
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
pull-requests: write
|
||||
actions: read
|
||||
contents: read
|
||||
steps:
|
||||
- name: Install requirements
|
||||
id: install_requirements
|
||||
run: |
|
||||
apt-get -q update
|
||||
apt-get -q install -y lftp
|
||||
apt-get -q clean
|
||||
- name: Cleanup Jeyll preview
|
||||
id: cleanup_preview
|
||||
run: |
|
||||
# Prepare ssh key
|
||||
echo "${{ secrets.WWW_DEPLOY_KEY }}" > ~/.ssh/id_ed25519
|
||||
chmod 600 ~/.ssh/id_ed25519
|
||||
# Delete preview context from the remote site
|
||||
echo -e "set sftp:connect-program ssh -a -x -o StrictHostKeyChecking=no; rm -r -f ${WEB_ROOT}${WEB_CONTEXT}\nbye" \
|
||||
| lftp sftp://${WEB_USER}:unused@${WEB_HOST}
|
Loading…
Add table
Add a link
Reference in a new issue