Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 67671979d7 | |||
| ccdde5e275 | |||
| a25906f785 | |||
| 75cbcfd066 | |||
| e1d525e628 | |||
| 9d6d8eaf90 | |||
| 41cf63b419 | |||
| 97aeea97ff | |||
| 6762d6338b | |||
| e148dae8ea | |||
| 90412d2f72 | |||
|
aa5cf992d5
|
|||
| 0d844f6380 | |||
| 2630547c12 | |||
|
6fc22a7a7f
|
|||
|
de0c9f5e01
|
|||
|
c9d37811aa
|
|||
| 83b7c5f3bd | |||
|
9319d42aca
|
@@ -28,13 +28,13 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout with submodules
|
||||
uses: actions/checkout@v6
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
submodules: recursive # Get submdules
|
||||
fetch-depth: 1 # Fetch all history for .GitInfo and .Lastmod
|
||||
|
||||
- name: Setup required tools (Hugo)
|
||||
uses: https://github.com/jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1
|
||||
uses: https://github.com/jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4.2.0
|
||||
with:
|
||||
cache: false # no cache on gitea
|
||||
github_token: ${{ secrets.GH_TOKEN }}
|
||||
@@ -46,11 +46,19 @@ jobs:
|
||||
sed -i "s|__PROXY_URL__|${{ secrets.MATOMO_PROXY_URL }}|" static/config.php
|
||||
sed -i "s|__TOKEN_AUTH__|${{ secrets.MATOMO_TOKEN_AUTH }}|" static/config.php
|
||||
|
||||
- name: Check for broken links
|
||||
run: |
|
||||
if [ "${{ gitea.ref }}" = "refs/heads/main" ]; then
|
||||
mise linkcheck --offline || true
|
||||
else
|
||||
mise linkcheck --offline
|
||||
fi
|
||||
|
||||
- name: Build website with Hugo
|
||||
run: hugo
|
||||
run: mise run build
|
||||
|
||||
- name: Copy website to host
|
||||
uses: https://github.com/appleboy/scp-action@v1.0.0
|
||||
uses: https://github.com/appleboy/scp-action@ff85246acaad7bdce478db94a363cd2bf7c90345 # v1.0.0
|
||||
with:
|
||||
host: mehl.mx
|
||||
username: maxmehl
|
||||
|
||||
@@ -20,7 +20,7 @@ all its files isn't so trivial. This is because the files are stored in a layout
|
||||
similar to bare Git repositories, and Seafile's headless tool, seafile-cli,
|
||||
is... suboptimal. So I created what started out as a wrapper for it and ended up
|
||||
as a full-blown tool for automatically synchronising your libraries to a backup
|
||||
location: [**Seafile Mirror**](https://src.mehl.mx/mxmehl/seafile-mirror).
|
||||
location: [**Seafile Mirror**](https://github.com/mxmehl/seafile-mirror).
|
||||
|
||||
## My requirements
|
||||
|
||||
@@ -64,7 +64,7 @@ turned out that this tool has a number of fundamental issues:
|
||||
|
||||
## The solution
|
||||
|
||||
[seafile-mirror](https://src.mehl.mx/mxmehl/seafile-mirror) takes care of all
|
||||
[seafile-mirror](https://github.com/mxmehl/seafile-mirror) takes care of all
|
||||
these stumbling blocks:
|
||||
|
||||
* It downloads/syncs defined libraries in customisable intervals
|
||||
@@ -95,13 +95,13 @@ and configuration.
|
||||
The tool has been running every day since a couple of months without any issues.
|
||||
However, I could imagine a few more features to be helpful for more people:
|
||||
|
||||
* Support of encrypted libraries: Shouldn't be a big issue, it would require
|
||||
passing the password to the underlying seafile-cli command.
|
||||
([#1](https://github.com/mxmehl/seafile-mirror/issues/1))
|
||||
* Support of login tokens: Currently, only user/password auth is supported which
|
||||
is fine for my use-case as it's just a read-only user. This wouldn't be hard
|
||||
to fix either, seafile-cli supports it (at least in theory).
|
||||
([#2](https://src.mehl.mx/mxmehl/seafile-mirror/issues/2))
|
||||
* Support of encrypted libraries: Shouldn't be a big issue, it would require
|
||||
passing the password to the underlying seafile-cli command.
|
||||
([#3](https://src.mehl.mx/mxmehl/seafile-mirror/issues/3))
|
||||
([#2](https://github.com/mxmehl/seafile-mirror/issues/2))
|
||||
|
||||
If you have encountered problems or would like to point out the need for
|
||||
specific features, please feel free to contact me or comment on the Mastodon
|
||||
|
||||
@@ -8,6 +8,7 @@ tags:
|
||||
- Community
|
||||
- DeutscheBahn
|
||||
- SupplyChain
|
||||
summary: Ich wurde mal wieder von Ralf Hersel zum “Captain it’s Wednesday” Podcast von GNU/Linux.ch eingeladen, um über Software-Lieferketten bei der Deutschen Bahn zu sprechen. Anlass waren meine jüngsten Vorträge auf der FOSS Backstage und der FOSDEM, in denen ich über die Herausforderungen und Chancen von Software-Lieferketten bei der DB gesprochen habe.
|
||||
headerimage:
|
||||
src: ciw.jpg
|
||||
alt: The famous "Captain it's Wednesday" comic
|
||||
@@ -17,6 +18,7 @@ audio: https://gnulinux.ch/podcast/CIW175.mp3
|
||||
event:
|
||||
name: Captain it's Wednesday Podcast
|
||||
href: https://gnulinux.ch/ciw175-podcast
|
||||
mastodon_toot_url: https://mastodon.social/@mxmehl/116318946107759692
|
||||
---
|
||||
|
||||
Ich wurde mal wieder von Ralf Hersel zum "Captain it's Wednesday" Podcast von GNU/Linux.ch eingeladen, um über Software-Lieferketten bei der Deutschen Bahn zu sprechen. Anlass waren meine jüngsten Vorträge auf der [FOSS Backstage](/blog/2026-03-foss-backstage-getting-real-supply-chain) und der [FOSDEM](/blog/2026-01-fosdem-supply-chain-strategy), in denen ich über die Herausforderungen und Chancen von Software-Lieferketten bei der DB gesprochen habe.
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
# @generated - this file is auto-generated by `mise lock` https://mise.en.dev/dev-tools/mise-lock.html
|
||||
|
||||
[[tools.hugo-extended]]
|
||||
version = "0.164.0"
|
||||
backend = "aqua:gohugoio/hugo/hugo-extended"
|
||||
|
||||
[tools.hugo-extended."platforms.linux-arm64"]
|
||||
checksum = "sha256:232d3bc2d1d9510625985ff7c89767598ffea5bc6e5e2882c791313f5a43f723"
|
||||
url = "https://github.com/gohugoio/hugo/releases/download/v0.164.0/hugo_extended_0.164.0_linux-arm64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/468320261"
|
||||
|
||||
[tools.hugo-extended."platforms.linux-arm64-musl"]
|
||||
checksum = "sha256:232d3bc2d1d9510625985ff7c89767598ffea5bc6e5e2882c791313f5a43f723"
|
||||
url = "https://github.com/gohugoio/hugo/releases/download/v0.164.0/hugo_extended_0.164.0_linux-arm64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/468320261"
|
||||
|
||||
[tools.hugo-extended."platforms.linux-x64"]
|
||||
checksum = "sha256:fea17b8c076f950bb2e9f9486667bdaa29422883888d509d63931c73e8a9b3a4"
|
||||
url = "https://github.com/gohugoio/hugo/releases/download/v0.164.0/hugo_extended_0.164.0_linux-amd64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/468320235"
|
||||
|
||||
[tools.hugo-extended."platforms.linux-x64-musl"]
|
||||
checksum = "sha256:fea17b8c076f950bb2e9f9486667bdaa29422883888d509d63931c73e8a9b3a4"
|
||||
url = "https://github.com/gohugoio/hugo/releases/download/v0.164.0/hugo_extended_0.164.0_linux-amd64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/468320235"
|
||||
|
||||
[tools.hugo-extended."platforms.macos-arm64"]
|
||||
checksum = "sha256:618491f40cbb36a9f55d4da761c55d89f79312130f926ff7f3e1dfa83ca15eb0"
|
||||
url = "https://github.com/gohugoio/hugo/releases/download/v0.164.0/hugo_extended_0.164.0_darwin-universal.pkg"
|
||||
url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/468320276"
|
||||
|
||||
[tools.hugo-extended."platforms.macos-x64"]
|
||||
checksum = "sha256:618491f40cbb36a9f55d4da761c55d89f79312130f926ff7f3e1dfa83ca15eb0"
|
||||
url = "https://github.com/gohugoio/hugo/releases/download/v0.164.0/hugo_extended_0.164.0_darwin-universal.pkg"
|
||||
url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/468320276"
|
||||
|
||||
[tools.hugo-extended."platforms.windows-x64"]
|
||||
checksum = "sha256:59109d4e05d0cc9e1743688166e5323a71bd8b67a6e928db07c61720cc49a7cc"
|
||||
url = "https://github.com/gohugoio/hugo/releases/download/v0.164.0/hugo_extended_0.164.0_windows-amd64.zip"
|
||||
url_api = "https://api.github.com/repos/gohugoio/hugo/releases/assets/468320305"
|
||||
|
||||
[[tools.lychee]]
|
||||
version = "0.24.2"
|
||||
backend = "aqua:lycheeverse/lychee"
|
||||
|
||||
[tools.lychee."platforms.linux-arm64"]
|
||||
checksum = "sha256:5d0b0e3aeab240f41920c633a6eaf97599be6eedda034b36e858ede7dba5e535"
|
||||
url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-aarch64-unknown-linux-musl.tar.gz"
|
||||
|
||||
[tools.lychee."platforms.linux-arm64-musl"]
|
||||
checksum = "sha256:5d0b0e3aeab240f41920c633a6eaf97599be6eedda034b36e858ede7dba5e535"
|
||||
url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-aarch64-unknown-linux-musl.tar.gz"
|
||||
|
||||
[tools.lychee."platforms.linux-x64"]
|
||||
checksum = "sha256:73657a111819a30c47c08352896796f23d64e4eb2b3ed39b6d32149241566fc5"
|
||||
url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-x86_64-unknown-linux-musl.tar.gz"
|
||||
|
||||
[tools.lychee."platforms.linux-x64-musl"]
|
||||
checksum = "sha256:73657a111819a30c47c08352896796f23d64e4eb2b3ed39b6d32149241566fc5"
|
||||
url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-x86_64-unknown-linux-musl.tar.gz"
|
||||
|
||||
[tools.lychee."platforms.macos-arm64"]
|
||||
checksum = "sha256:c9d3740ea2d891854d37116c9fba840f37b6e7c89d330e7db84ac333631c4977"
|
||||
url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-aarch64-apple-darwin.tar.gz"
|
||||
|
||||
[tools.lychee."platforms.macos-x64"]
|
||||
checksum = "sha256:887503a9cff667d322b8d0892b40bf49976eb9507af8483220a3706cdad55978"
|
||||
url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-x86_64-apple-darwin.tar.gz"
|
||||
|
||||
[tools.lychee."platforms.windows-x64"]
|
||||
checksum = "sha256:32975d1493ee1a975d6bb41e4fb56fe419cb442ded628bb772ba2e614acfacad"
|
||||
url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-x86_64-pc-windows-msvc.zip"
|
||||
@@ -1,5 +1,5 @@
|
||||
[tools]
|
||||
hugo-extended = "0.159.1"
|
||||
hugo-extended = "0.164.0"
|
||||
lychee = "latest"
|
||||
|
||||
[vars]
|
||||
@@ -14,18 +14,13 @@ depends = ["cleanup"]
|
||||
description = "Build the static site using Hugo"
|
||||
run = "hugo -d {{vars.build_dir}}"
|
||||
|
||||
[tasks.build-root]
|
||||
depends = ["cleanup"]
|
||||
description = "Build the static site using Hugo, not using subdirectory as baseURL"
|
||||
run = "hugo --baseURL / -d {{vars.build_dir}}"
|
||||
|
||||
[tasks.preview]
|
||||
depends = ["cleanup"]
|
||||
description = "Preview the site locally using Hugo's built-in server"
|
||||
run = "hugo server"
|
||||
|
||||
[tasks.linkcheck]
|
||||
depends = ["build-root"]
|
||||
depends = ["build"]
|
||||
description = "Check for broken links using lychee"
|
||||
run = '''
|
||||
lychee \
|
||||
@@ -33,5 +28,6 @@ lychee \
|
||||
--index-files 'index.html' \
|
||||
--root-dir {{vars.build_dir}}/ \
|
||||
-u 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) Apple WebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36' \
|
||||
--exclude 'glyphicons-halflings-regular\.(eot|woff|woff2|ttf|svg)' \
|
||||
{{vars.build_dir}}/
|
||||
'''
|
||||
|
||||
@@ -65,7 +65,9 @@
|
||||
</div>
|
||||
<div class="col-xs-9 col-md-10">
|
||||
{{ if $selection }}
|
||||
<span class="article-rss"><a class="label label-rss" href="/{{ .Data.Plural }}/{{lower .Title}}/index.xml" title="RSS Feed"><i class="fa fa-rss" aria-hidden="true"></i> Subscribe to »{{.Title}}«</a></span>
|
||||
{{- with .OutputFormats.Get "RSS" -}}
|
||||
<span class="article-rss"><a class="label label-rss" href="{{ .Permalink }}" title="RSS Feed"><i class="fa fa-rss" aria-hidden="true"></i> Subscribe to »{{ $.Title }}«</a></span>
|
||||
{{- end -}}
|
||||
{{ else }}
|
||||
<span class="article-rss"><a class="label label-rss" href="/blog/index.xml" title="RSS Feed"><i class="fa fa-rss" aria-hidden="true"></i> Subscribe to all posts</a></span>
|
||||
{{ end }}
|
||||
|
||||
Reference in New Issue
Block a user