finish sourcehut post
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: "Migrating from Github to Sourcehut"
|
title: "Migrating from GitHub to SourceHut"
|
||||||
date: 2024-10-31T16:05:04-04:00
|
date: 2024-11-05T12:21:55-05:00
|
||||||
draft: false
|
draft: false
|
||||||
references:
|
references:
|
||||||
- title: "Switching to SourceHut Builds - Tim Hårek"
|
- title: "Switching to SourceHut Builds - Tim Hårek"
|
||||||
@@ -13,34 +13,28 @@ references:
|
|||||||
file: drewdevault-com-yuxzdw.txt
|
file: drewdevault-com-yuxzdw.txt
|
||||||
---
|
---
|
||||||
|
|
||||||
I've moved this site's repository from [GitHub][1] to [SourceHut][2], an alternative, open-source Git host. Why? For a few reasons ...
|
I've moved this site's repository from [GitHub][1] to [SourceHut][2], an alternative, open-source Git host.I thought I'd take a few minutes to explain the why and the how.
|
||||||
|
|
||||||
[1]: https://github.com/
|
[1]: https://github.com/
|
||||||
[2]: https://sourcehut.org/
|
[2]: https://sourcehut.org/
|
||||||
|
|
||||||
<!--more-->
|
<!--more-->
|
||||||
|
|
||||||
### Why?
|
I've been on GitHub since 2008, and I still use it every day as part of my job. I've no major complaints -- I'm still worlds happier using it than when I'm forced to use Jira or similar. Still, something has shifted in the last 16 years.
|
||||||
|
|
||||||
* GH/MS kind of lame
|
I get regular emails from their salespeople trying to upsell us on more expensive enterprise plans; that's how it goes in a capitalist society, but I prefer my tech a little scrappier. I'm not crazy about Git -- open-source, decentralized technology -- becoming largely synonomous with a closed-source, centralized platform owned by a three-trillion dollar company, nor about my work and personal coding activity being all mixed up together. Furthermore, the way they've used open-source code to train up their LLM (Copilot) that they then sell back to developers doesn't sit right with me.
|
||||||
* Sales people
|
|
||||||
* AI
|
I learned about SourceHut from [Tim Hårek][3] and have been following along for a few years. A thread on Mastodon (alas, lost in the void) about Copilot finally motivated me to sign up. I happily paid $20 to support the effort as well as to get access to SourceHut Builds, their GitHub Actions equivalent ([this post about why they require a paid account to use CI][4] is a gem).
|
||||||
* Git is decentralized/open source; GitHub is centralized/closed source
|
|
||||||
* I like and follow DD (maybe not)
|
|
||||||
* [Tim Harek uses it][3]
|
|
||||||
* I'm still a happy enough GitHub user at work, but this is my place where I can be as fussy as I my heart desires.
|
|
||||||
|
|
||||||
[3]: https://timharek.no/blog/switching-to-sourcehut-builds
|
[3]: https://timharek.no/blog/switching-to-sourcehut-builds
|
||||||
|
[4]: https://drewdevault.com/2021/04/26/Cryptocurrency-is-a-disaster.html
|
||||||
|
|
||||||
* I paid for it
|
After a few evenings of tinkering, I've got this site (as well as my [mdrenum tool][5]) moved over. I'm pretty anti-[bikeshedding][6] at work, but this is my place to be exactly as fussy as my heart desires.
|
||||||
* Happy to support independents
|
|
||||||
* Cheaper than self hosting [Gitea][4] or similar
|
|
||||||
* [Cryptocurrency is an abject disaster][5]
|
|
||||||
|
|
||||||
[4]: https://about.gitea.com/
|
[5]: https://git.sr.ht/~dce/mdrenum
|
||||||
[5]: https://drewdevault.com/2021/04/26/Cryptocurrency-is-a-disaster.html
|
[6]: https://en.wikipedia.org/wiki/Law_of_triviality
|
||||||
|
|
||||||
### Stuff to know
|
### Setting up SourceHut Builds
|
||||||
|
|
||||||
Adding a new remote is as simple as
|
Adding a new remote is as simple as
|
||||||
|
|
||||||
@@ -50,19 +44,24 @@ git remote add origin git@git.sr.ht:~dce/davideisinger.com
|
|||||||
git push origin main
|
git push origin main
|
||||||
````
|
````
|
||||||
|
|
||||||
But switching from GitHub Actions to SourceHut Builds took some doing.
|
But switching from GitHub Actions to SourceHut Builds took some doing. A few things to note:
|
||||||
|
|
||||||
* No actions marketplace
|
* There's no analog to GitHub's [Actions Marketplace][7]. You've got what's available via the OS package manager, and beyond that, you'll need to install things by hand. [Here's how I install Bun][8], for example.
|
||||||
* `&` doesn't work
|
|
||||||
* Secrets go in files, not environment variables
|
|
||||||
* Shared config file
|
|
||||||
* https://man.sr.ht/builds.sr.ht/#build-environment
|
|
||||||
* Disable logging
|
|
||||||
* https://man.sr.ht/builds.sr.ht/#keeping-your-secrets-a-secret
|
|
||||||
|
|
||||||
---
|
[7]: https://github.com/marketplace?type=actions
|
||||||
|
[8]: https://git.sr.ht/~dce/mdrenum/tree/main/item/.build.yml#L14
|
||||||
|
|
||||||
* [Switching to SourceHut Builds - Tim Hårek](https://timharek.no/blog/switching-to-sourcehut-builds)
|
* `&` doesn't work for starting background tasks. Building this site requires starting a local [image server][9] and then calling it from Hugo. On GitHub, I could start the server with `bundle exec ruby dither.rb &`, but SourceHut seems to strip off the `&`, starting the process in the foreground and thus hanging the build. Switching over to `rackup` with the `--daemonize` option works fine.
|
||||||
* <https://git.sr.ht/~timharek/timharek.no/tree/main/item/.build.yml>
|
|
||||||
* <https://git.sr.ht/~dce/mdrenum/tree/main/item/.build.yml>
|
[9]: /journal/encrypt-and-dither-photos-in-hugo/#2-build-a-tiny-image-server
|
||||||
* <https://git.sr.ht/~dce/davideisinger.com/tree/main/item/.build.yml>
|
|
||||||
|
* Secrets go in files, not environment variables. If you need a secret as an environment variable, do [something like this][10]. Be sure to disable logging before you do this -- it's verbose in surprising ways (see ["Keeping your secrets a secret"][11] in the docs).
|
||||||
|
|
||||||
|
[10]: https://git.sr.ht/~dce/davideisinger.com/tree/main/.build.yml#L38
|
||||||
|
[11]: https://man.sr.ht/builds.sr.ht/#keeping-your-secrets-a-secret
|
||||||
|
|
||||||
|
* Add stuff to `~/.buildenv` (which runs before every step) to reduce duplication. See [docs][12] and examples for [this site][13] and [mdrenum][14].
|
||||||
|
|
||||||
|
[12]: https://man.sr.ht/builds.sr.ht/#build-environment
|
||||||
|
[13]: https://git.sr.ht/~dce/davideisinger.com/tree/main/.build.yml#L21
|
||||||
|
[14]: https://git.sr.ht/~dce/mdrenum/tree/main/item/.build.yml#L15-17
|
||||||
|
|||||||
Reference in New Issue
Block a user