mirror of
https://github.com/harivansh-afk/nix.git
synced 2026-04-15 09:01:16 +00:00
103 lines
3.3 KiB
YAML
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
|