nix/.github/workflows/quality.yml
Harivansh Rathi 77b7903823
Some checks are pending
quality / changes (push) Waiting to run
quality / Flake Check (push) Blocked by required conditions
quality / Nix Format Check (push) Blocked by required conditions
quality / Deploy netty (push) Blocked by required conditions
ci netty apply
2026-03-31 15:57:12 -04:00

103 lines
3.3 KiB
YAML

name: quality
on:
pull_request:
branches: [main]
push:
branches: [main]
permissions:
contents: read
jobs:
changes:
runs-on: ubuntu-latest
outputs:
quality: ${{ steps.filter.outputs.quality }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
quality:
- "**/*.nix"
- "flake.lock"
- "flake.nix"
- "justfile"
- "ci/**"
- "config/**"
- "scripts/**"
- ".github/workflows/**"
flake-check:
name: Flake Check
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.quality == 'true' }}
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
- name: Prepare local flake input shims
run: |
set -euo pipefail
# The repo currently depends on a local path flake input for agentcomputer-cli.
sudo mkdir -p /Users/rathi/Documents/GitHub/companion/agentcomputer/apps
sudo ln -sfn "$GITHUB_WORKSPACE/ci/agentcomputer-cli-stub" /Users/rathi/Documents/GitHub/companion/agentcomputer/apps/cli
- run: nix flake check
nix-format:
name: Nix Format Check
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.quality == 'true' }}
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
- name: Prepare local flake input shims
run: |
set -euo pipefail
sudo mkdir -p /Users/rathi/Documents/GitHub/companion/agentcomputer/apps
sudo ln -sfn "$GITHUB_WORKSPACE/ci/agentcomputer-cli-stub" /Users/rathi/Documents/GitHub/companion/agentcomputer/apps/cli
- run: nix fmt -- --ci
deploy-netty:
name: Deploy netty
runs-on: ubuntu-latest
needs: [changes, flake-check, nix-format]
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && needs.changes.outputs.quality == 'true' }}
concurrency:
group: deploy-netty
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
- name: Configure SSH
shell: bash
env:
NETTY_SSH_PRIVATE_KEY: ${{ secrets.NETTY_SSH_PRIVATE_KEY }}
NETTY_SSH_KNOWN_HOSTS: ${{ secrets.NETTY_SSH_KNOWN_HOSTS }}
run: |
set -euo pipefail
test -n "$NETTY_SSH_PRIVATE_KEY"
test -n "$NETTY_SSH_KNOWN_HOSTS"
install -d -m 700 "$HOME/.ssh"
printf '%s\n' "$NETTY_SSH_PRIVATE_KEY" > "$HOME/.ssh/netty"
chmod 600 "$HOME/.ssh/netty"
printf '%s\n' "$NETTY_SSH_KNOWN_HOSTS" > "$HOME/.ssh/known_hosts"
chmod 600 "$HOME/.ssh/known_hosts"
cat > "$HOME/.ssh/config" <<'EOF'
Host netty
HostName 152.53.195.59
User root
IdentityFile ~/.ssh/netty
IdentitiesOnly yes
EOF
chmod 600 "$HOME/.ssh/config"
- name: Deploy netty
shell: bash
run: |
set -euo pipefail
nix shell nixpkgs#just --command just switch-netty