Commit e22aa788a5

e22aa788a5da78f62e9b25c666a6701582812856

parent: c5ddea05b5

Verified · cmc

cmc <hello@cleberg.net> · 2026-03-23 15:52 UTC

migrate ci to sourcehut; add ruff to build.py

Layout: unified · split

.builds/deploy.yml → .build.yml renamed +1 −1
@@ -11,7 +11,7 @@ sources:
1111 - https://git.sr.ht/~ccleberg/cleberg.net
1212
1313secrets:
14 - <ssh-deploy-key-uuid> # ~/.ssh/id_rsa, has write access to server
14 - 303fbd30-2970-4d18-b88b-0f6abf822ea5
1515
1616environment:
1717 ENV: prod
.github/workflows/deploy.yml deleted −68
@@ -1,68 +0,0 @@
1name: Build and Deploy
2
3on:
4 push:
5 branches:
6 - main
7 paths-ignore:
8 - '.github/**'
9 - 'screenshots/**'
10 - 'utils/**'
11 - 'LICENSE'
12 - 'README.org'
13
14jobs:
15 build-job:
16 runs-on: ubuntu-latest
17 container:
18 image: ghcr.io/ccleberg/cleberg.net:main
19
20 steps:
21 - name: Checkout code
22 uses: actions/checkout@v6
23
24 - name: Run Build
25 env:
26 ENV: "prod"
27 BUILD: "true"
28 DEPLOY: "false"
29 run: |
30 echo "Environment is ready. Running build..."
31 uv run build.py
32
33 - name: Upload Build Artifacts
34 uses: actions/upload-artifact@v6
35 with:
36 name: build-output
37 path: ${{ github.workspace }}/.build/
38 include-hidden-files: true
39
40 deploy-job:
41 runs-on: ubuntu-latest
42 needs: build-job
43 environment: production
44 container:
45 image: ghcr.io/ccleberg/cleberg.net:main
46
47 steps:
48 - name: Checkout code
49 uses: actions/checkout@v6
50
51 - name: Download Build Artifacts
52 uses: actions/download-artifact@v6
53 with:
54 name: build-output
55 path: ${{ github.workspace }}/.build/
56
57 - name: Setup SSH and Deploy
58 env:
59 SERVER_IP: ${{ secrets.SERVER_IP }}
60 SERVER_USER: ${{ secrets.SERVER_USER }}
61 SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
62 run: |
63 eval $(ssh-agent -s)
64 echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
65 rsync -avz --delete \
66 -e "ssh -p ${{ secrets.SSH_PORT }} -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" \
67 .build/ \
68 $SERVER_USER@$SERVER_IP:/var/www/cleberg.net/
.github/workflows/docker-build.yml deleted −41
@@ -1,41 +0,0 @@
1name: Build and Push Docker Image
2
3on:
4 push:
5 branches: [ "main" ]
6 paths:
7 - 'Dockerfile'
8 - 'requirements.txt'
9 - '.github/workflows/docker-build.yml'
10
11jobs:
12 build:
13 runs-on: ubuntu-latest
14 permissions:
15 contents: read
16 packages: write
17
18 steps:
19 - name: Checkout repository
20 uses: actions/checkout@v4
21
22 - name: Log in to GHCR
23 uses: docker/login-action@v3
24 with:
25 registry: ghcr.io
26 username: ${{ github.actor }}
27 password: ${{ secrets.GITHUB_TOKEN }}
28
29 - name: Extract metadata
30 id: meta
31 uses: docker/metadata-action@v5
32 with:
33 images: ghcr.io/${{ github.repository }}
34
35 - name: Build and push
36 uses: docker/build-push-action@v5
37 with:
38 context: .
39 push: true
40 tags: ${{ steps.meta.outputs.tags }}
41 labels: ${{ steps.meta.outputs.labels }}
.github/workflows/ruff.yml deleted −42
@@ -1,42 +0,0 @@
1name: Ruff
2
3on:
4 push:
5 branches: [ "main" ]
6 paths:
7 - '**.py'
8 pull_request:
9 branches: [ "main" ]
10 paths:
11 - '**.py'
12
13jobs:
14 build:
15 runs-on: ubuntu-latest
16 strategy:
17 matrix:
18 python-version: ["3.x"]
19 steps:
20 - uses: actions/checkout@v4
21 - name: Set up Python ${{ matrix.python-version }}
22 uses: actions/setup-python@v5
23 with:
24 python-version: ${{ matrix.python-version }}
25 ref: ${{ github.event.pull_request.head.ref }}
26 - name: Install dependencies
27 run: |
28 python -m pip install --upgrade pip
29 pip install pandas dash plotly.express
30 - name: Install Ruff
31 uses: astral-sh/ruff-action@v3.2.2
32 - name: Ruff Actions
33 run: |
34 ruff check --fix
35 ruff format
36 - name: Add and Commit
37 uses: EndBug/add-and-commit@v9
38 env:
39 GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
40 with:
41 default_author: github_actions
42 pathspec_error_handling: ignore
Dockerfile deleted −31
@@ -1,31 +0,0 @@
1FROM python:3.12-slim
2
3ENV DEBIAN_FRONTEND=noninteractive \
4 HOMEBREW_NO_AUTO_UPDATE=1 \
5 PATH="/home/linuxbrew/.linuxbrew/bin:${PATH}"
6
7RUN apt-get update && apt-get install -y --no-install-recommends \
8 curl \
9 git \
10 procps \
11 build-essential \
12 ca-certificates \
13 openssh-client \
14 && rm -rf /var/lib/apt/lists/*
15
16RUN useradd -m -s /bin/bash linuxbrew
17USER linuxbrew
18WORKDIR /home/linuxbrew
19
20RUN /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
21
22RUN brew install emacs rsync uv minify
23
24RUN mkdir -p ~/.config/emacs/.local/straight/repos && \
25 cd ~/.config/emacs/.local/straight/repos && \
26 git clone --depth 1 https://github.com/emacsorphanage/htmlize.git && \
27 git clone --depth 1 https://github.com/emacs-love/templatel.git && \
28 git clone --depth 1 https://github.com/emacs-love/weblorg.git
29
30USER root
31WORKDIR /builds