Rework the CI/CD for production #31

Merged
btlogy merged 9 commits from 30.rework-for-prod into main 2025-08-13 18:32:00 +00:00
7 changed files with 51 additions and 45 deletions

View file

@ -8,8 +8,9 @@ on:
env: env:
_UID: 1000 _UID: 1000
_GID: 1000 _GID: 1000
WEB_DOMAIN: lafs.eval.latfa.net WEB_DOMAIN: tahoe-lafs.org
WEB_USER: www WEB_HOST: webforge.of.tahoe-lafs.org
WEB_USER: bot-www
WEB_DIR: /var/www WEB_DIR: /var/www
jobs: jobs:
jekyll: jekyll:
@ -18,6 +19,7 @@ jobs:
- name: Check out repository - name: Check out repository
id: checkout id: checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
github-server-url: 'https://forge.of.tahoe-lafs.org/'
- name: Change file ownership - name: Change file ownership
id: file_ownership id: file_ownership
run: | run: |
@ -45,9 +47,9 @@ jobs:
id: build_site id: build_site
run: | run: |
# Overwrite the baseurl for preview only # Overwrite the baseurl for preview only
if [ "${{ gitea.event_name }}" = 'pull_request' ]; then if [ "${{ forge.event_name }}" = 'pull_request' ]; then
echo "Overwriting baseurl for pull_request ${{ gitea.event.pull_request.number }}" echo "Overwriting baseurl for pull_request ${{ forge.event.pull_request.number }}"
sed -i -r -e 's/^baseurl:\s*"([^"]*)"/baseurl: "\1\/${{ gitea.event.pull_request.number }}"/' _config.yml sed -i -r -e 's/^baseurl:\s*"([^"]*)"/baseurl: "\1\/${{ forge.event.pull_request.number }}"/' _config.yml
grep "^baseurl:" _config.yml grep "^baseurl:" _config.yml
fi fi
docker-compose run --rm -v "${JOB_CONTAINER_NAME}:/site" -w /site \ docker-compose run --rm -v "${JOB_CONTAINER_NAME}:/site" -w /site \
@ -55,17 +57,18 @@ jobs:
- name: Deploy Jekyll site - name: Deploy Jekyll site
id: deploy_site id: deploy_site
run: | run: |
if [ "${{ gitea.ref }}" = 'refs/heads/main' ]; then if [ "${{ forge.ref }}" = 'refs/heads/main' ]; then
WEB_ROOT="${WEB_DIR}/site" WEB_ROOT="${WEB_DIR}/live"
WEB_HOST="www.${WEB_DOMAIN}" WEB_VHOST="home.of.${WEB_DOMAIN}"
WEB_CONTEXT='/' WEB_CONTEXT='/'
else else
WEB_ROOT="${WEB_DIR}/preview" WEB_ROOT="${WEB_DIR}/preview"
WEB_HOST="preview.${WEB_DOMAIN}" WEB_VHOST="preview.of.${WEB_DOMAIN}"
WEB_CONTEXT='/${{ gitea.event.pull_request.number }}/' WEB_CONTEXT='/${{ forge.event.pull_request.number }}/'
fi fi
# Save those variabes in the environment for the next steps # Save those variabes in the environment for the next steps
echo "WEB_HOST=${WEB_HOST}" >> $GITHUB_ENV echo "WEB_HOST=${WEB_HOST}" >> $GITHUB_ENV
echo "WEB_VHOST=${WEB_VHOST}" >> $GITHUB_ENV
echo "WEB_CONTEXT=${WEB_CONTEXT}" >> $GITHUB_ENV echo "WEB_CONTEXT=${WEB_CONTEXT}" >> $GITHUB_ENV
# Prepare ssh key # Prepare ssh key
echo "${{ secrets.WWW_DEPLOY_KEY }}" > ~/.ssh/id_ed25519 echo "${{ secrets.WWW_DEPLOY_KEY }}" > ~/.ssh/id_ed25519
@ -73,23 +76,23 @@ jobs:
# Synchronize the local and the remote site # Synchronize the local and the remote site
rsync -halvi --delete \ rsync -halvi --delete \
-e "ssh -a -x -o StrictHostKeyChecking=no" \ -e "ssh -a -x -o StrictHostKeyChecking=no" \
./_site/ "${WEB_USER}@${WEB_DOMAIN}:${WEB_ROOT}${WEB_CONTEXT}" ./_site/ "${WEB_USER}@${WEB_HOST}:${WEB_ROOT}${WEB_CONTEXT}"
- name: Comment pull request - name: Comment pull request
id: comment_pull_request id: comment_pull_request
if: ${{ always() && gitea.event_name == 'pull_request' }} if: ${{ always() && forge.event_name == 'pull_request' }}
uses: exercism/pr-commenter-action@v1.5.1 uses: https://github.com/exercism/pr-commenter-action@v1.5.1
with: with:
template-variables: | template-variables: |
{ {
"imageOutcome": "${{ steps.build_image.outcome }}", "imageOutcome": "${{ steps.build_image.outcome }}",
"buildOutcome": "${{ steps.build_site.outcome }}", "buildOutcome": "${{ steps.build_site.outcome }}",
"deployOutcome": "${{ steps.deploy_site.outcome }}", "deployOutcome": "${{ steps.deploy_site.outcome }}",
"deployWebHost": "${{ env.WEB_HOST }}", "deployWebHost": "${{ env.WEB_VHOST }}",
"deployWebContext": "${{ env.WEB_CONTEXT }}", "deployWebContext": "${{ env.WEB_CONTEXT }}",
"gitActor": "${{ gitea.actor }}", "gitActor": "${{ forge.actor }}",
"gitEventName": "${{ gitea.event_name }}", "gitEventName": "${{ forge.event_name }}",
"gitWorkflow": "${{ gitea.workflow }}", "gitWorkflow": "${{ forge.workflow }}",
"gitRunNumber": "${{ gitea.run_number }}", "gitRunNumber": "${{ forge.run_number }}",
"gitRunAttempt": "${{ gitea.run_attempt }}" "gitRunAttempt": "${{ forge.run_attempt }}"
} }
config-file: ".gitea/pr-commenter.yml" config-file: ".forgejo/pr-commenter.yml"

View file

@ -6,10 +6,10 @@ on:
types: [ closed ] types: [ closed ]
env: env:
WEB_DOMAIN: lafs.eval.latfa.net WEB_HOST: webforge.of.tahoe-lafs.org
WEB_USER: www WEB_USER: www
WEB_ROOT: /var/www/preview WEB_ROOT: /var/www/preview
WEB_CONTEXT: "/${{ gitea.event.pull_request.number }}/" WEB_CONTEXT: "/${{ forge.event.pull_request.number }}/"
jobs: jobs:
jekyll_cleanup: jekyll_cleanup:
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
@ -32,4 +32,4 @@ jobs:
chmod 600 ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519
# Delete preview context from the remote site # 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" \ 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_DOMAIN} | lftp sftp://${WEB_USER}:unused@${WEB_HOST}

View file

@ -10,4 +10,4 @@ main:
- title: "About" - title: "About"
url: "#about" url: "#about"
- title: "Fork me" - title: "Fork me"
url: "https://code.lafs.eval.latfa.net/tahoe-lafs/web-landing-page/" url: "https://forge.of.tahoe-lafs.org/tahoe-lafs/web-landing-page/"

View file

@ -1,14 +1,12 @@
--- ---
layout: single layout: single
title: "v1.18.0 is released" title: "v1.20.0 is released"
date: 2022-10-03 16:17:57 +0000 date: 2024-12-19 05:48:54 +0000
excerpt: "ANNOUNCING Tahoe, the Least-Authority File Store, v1.18.0" excerpt: "ANNOUNCING Tahoe, the Least-Authority File Store, v1.20.0"
header: header:
teaser: /assets/images/posts/release.jpg teaser: /assets/images/posts/release.jpg
--- ---
ANNOUNCING Tahoe, the Least-Authority File Store, v1.18.0 The Tahoe-LAFS team is pleased to announce version 1.20.0 of
The Tahoe-LAFS team is pleased to announce version 1.18.0 of
Tahoe-LAFS, an extremely reliable decentralized storage Tahoe-LAFS, an extremely reliable decentralized storage
system. Get it with "pip install tahoe-lafs", or download a system. Get it with "pip install tahoe-lafs", or download a
tarball here: tarball here:
@ -23,15 +21,22 @@ unique security and fault-tolerance properties:
[https://tahoe-lafs.readthedocs.org/en/latest/about.html][about] [https://tahoe-lafs.readthedocs.org/en/latest/about.html][about]
The previous stable release of Tahoe-LAFS was v1.17.1, released on The previous stable release of Tahoe-LAFS was v1.19.0, released on
January 7, 2022. January 18, 2024. Major new features and changes in this release:
This release drops support for Python 2 and for Python 3.6 and earlier. Declarative build system based on "hatch".
twistd.pid is no longer used (in favour of one with pid + process creation time). The ability to creat mutable directories with a given private-key.
A collection of minor bugs and issues were also fixed.
Pulled in fixes from CBOR, stopped using the C version of CBOR and
fixed incompatibilities with attrs and cryptography libraries.
Besides all this there have been dozens of other bug-fixes and
improvements.
Enjoy!
[Read the full announcement][more] [Read the full announcement][more]
[download]: https://tahoe-lafs.org/downloads [download]: https://tahoe-lafs.org/downloads
[about]: https://tahoe-lafs.readthedocs.org/en/latest/about.html [about]: https://tahoe-lafs.readthedocs.org/en/latest/about.html
[more]: https://lists.tahoe-lafs.org/pipermail/tahoe-dev/2022-October/010043.html [more]: https://lists.tahoe-lafs.org/pipermail/tahoe-dev/2024-December/010111.html

View file

@ -1,7 +1,7 @@
--- ---
layout: single layout: single
title: "New landing page" title: "New landing page"
date: 2024-05-29 21:47:57 +0200 date: 2025-08-13 18:23:00 +0200
excerpt: "The old Tahoe-LAFS landing page is gone!" excerpt: "The old Tahoe-LAFS landing page is gone!"
header: header:
teaser: /assets/images/posts/old-landing-page-teaser.png teaser: /assets/images/posts/old-landing-page-teaser.png
@ -9,14 +9,12 @@ gallery:
- image_path: /assets/images/posts/old-landing-page.png - image_path: /assets/images/posts/old-landing-page.png
alt: "original" alt: "original"
--- ---
We're happy to announce that the migration of the [original][old] landing page to this one has been completed. We're happy to announce that the migration from the [trac][old] landing page (see below) to the [jekyll][new] one has been completed.
Help us to contribute to it using this [repository][repo]. Help us to contribute to it using this [repository][repo].
Goodbye Trac...
{% include gallery %} {% include gallery %}
[old]: https://tahoe-lafs.org/trac/tahoe-lafs/wiki/WikiStart [old]: https://tahoe-lafs.org/trac/tahoe-lafs/wiki/WikiStart
[new]: https://www.lafs.eval.latfa.net/ [new]: https://home.of.tahoe-lafs.org/
[repo]: https://code.lafs.eval.latfa.net/tahoe-lafs/web-landing-page/ [repo]: https://forge.of.tahoe-lafs.org/tahoe-lafs/web-landing-page/

View file

@ -55,8 +55,8 @@ contribute_list:
alt: "issues" alt: "issues"
title: "Issues" title: "Issues"
excerpt: '<ul> excerpt: '<ul>
<li>Visit the <a href="https://code.lafs.eval.latfa.net/tahoe-lafs/trac/issues"><b>issue</b></a> tracker</li> <li>Visit the <a href="https://tahoe-lafs.org/trac/tahoe-lafs"><b>issue</b></a> tracker</li>
<li>Register an <a href="https://code.lafs.eval.latfa.net/user/sign_up"><b>account</b></a> to interact</li> <!--<li>Register an <a href="https://forge.of.tahoe-lafs.org/user/sign_up"><b>account</b></a> to interact</li>-->
</ul>' </ul>'
- image_path: /assets/images/code.svg - image_path: /assets/images/code.svg
alt: "code" alt: "code"