Files
nazarick-private/.gitea/workflows/ci.yml
T
Sithies 72affaa0d8
CI / check (push) Successful in 13m8s
CI / test (push) Successful in 13m23s
CI / clippy (push) Successful in 12m46s
CI / deploy-infra (push) Has been skipped
CI / deploy (push) Has been skipped
feat: add Dockerfile, deploy pipeline, Ollama infra job, weekly cron
2026-04-25 19:22:51 +02:00

103 lines
2.8 KiB
YAML

name: CI
on:
push:
branches: [ '**' ]
pull_request:
branches: [ master ]
schedule:
- cron: '0 3 * * 1' # Jeden Montag 03:00 UTC
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo check --all-targets
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo test
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- uses: Swatinem/rust-cache@v2
- run: cargo clippy -- -D warnings
deploy:
runs-on: ubuntu-latest
needs: [ check, test, clippy ]
if: github.ref == 'refs/heads/master' && github.event_name == 'push'
steps:
- uses: actions/checkout@v4
- name: Install cross-compilation tools
run: |
sudo apt-get update
sudo apt-get install -y gcc-aarch64-linux-gnu
- uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-unknown-linux-gnu
- uses: Swatinem/rust-cache@v2
- name: Build ARM64
run: cargo build --release --target aarch64-unknown-linux-gnu
env:
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
- name: Setup SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.PI_SSH_KEY }}" > ~/.ssh/deploy_key
chmod 600 ~/.ssh/deploy_key
ssh-keyscan -p 10022 localhost >> ~/.ssh/known_hosts
- name: Copy binary to Pi
run: |
scp -i ~/.ssh/deploy_key -P 10022 \
target/aarch64-unknown-linux-gnu/release/nazarick \
deploy@localhost:/opt/nazarick/nazarick.new
- name: Restart nazarick on Pi
run: |
ssh -i ~/.ssh/deploy_key -p 10022 deploy@localhost '
mv /opt/nazarick/nazarick.new /opt/nazarick/target/release/nazarick
cd /opt/nazarick
docker compose restart nazarick
'
deploy-infra:
runs-on: ubuntu-latest
if: github.event_name == 'schedule'
steps:
- name: Setup SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.PI_SSH_KEY }}" > ~/.ssh/deploy_key
chmod 600 ~/.ssh/deploy_key
ssh-keyscan -p 10022 localhost >> ~/.ssh/known_hosts
- name: Update Ollama + pull latest Gemma
run: |
ssh -i ~/.ssh/deploy_key -p 10022 deploy@localhost '
cd /opt/nazarick
docker compose pull ollama
docker compose up -d ollama
sleep 5
docker exec ollama ollama pull gemma3:2b
docker compose restart nazarick
'