snowfield/.drone.yml
2021-12-27 10:48:48 +01:00

195 lines
4.2 KiB
YAML

---
kind: pipeline
type: exec
name: Build all configurations
platform:
os: linux
arch: amd64
steps:
- name: Show flake info
commands:
- nix --experimental-features "nix-command flakes" flake show
- nix --experimental-features "nix-command flakes" flake metadata
- nix --experimental-features "nix-command flakes" flake check
- name: Run flake checks
commands:
- nix --experimental-features "nix-command flakes" flake check --show-trace
- name: Build lisa
commands:
- nix build -v '.#nixosConfigurations.lisa.config.system.build.toplevel' --option binary-caches "https://cache.nixos.org"
- name: Build newton
commands:
- nix build -v '.#nixosConfigurations.newton.config.system.build.toplevel' --option binary-caches "https://cache.nixos.org"
- name: Build macintosh
commands:
- nix build -v '.#nixosConfigurations.macintosh.config.system.build.toplevel' --option binary-caches "https://cache.nixos.org"
trigger:
branch:
- main
event:
- push
- pull_request
---
kind: pipeline
type: exec
name: Build custom packages
platform:
os: linux
arch: amd64
steps:
- name: Build tinystatus
commands:
- nix build .#tinystatus
- name: Build mosh
commands:
- nix build .#mosh
trigger:
branch:
- main
event:
- push
- pull_request
---
kind: pipeline
type: exec
name: Update flake
platform:
os: linux
arch: amd64
steps:
- name: create old builds
commands:
- nix build -v '.#nixosConfigurations.lisa.config.system.build.toplevel' --option binary-caches "https://cache.nixos.org"
- mv result lisa-old
- nix build -v '.#nixosConfigurations.newton.config.system.build.toplevel' --option binary-caches "https://cache.nixos.org"
- mv result newton-old
- nix build -v '.#nixosConfigurations.macintosh.config.system.build.toplevel' --option binary-caches "https://cache.nixos.org"
- mv result macintosh-old
- name: flake update
commands:
- nix --experimental-features "nix-command flakes" flake update --inputs-from nixpkgs
- name: Show git diff
commands:
- git diff
- name: Show flake info
commands:
- nix --experimental-features "nix-command flakes" flake show
- nix --experimental-features "nix-command flakes" flake metadata
- nix --experimental-features "nix-command flakes" flake check
- name: Run flake checks
commands:
- nix --experimental-features "nix-command flakes" flake check --show-trace
- name: Build lisa
commands:
- nix build -v '.#nixosConfigurations.lisa.config.system.build.toplevel' --option binary-caches "https://cache.nixos.org"
- mv result lisa-new
- name: Build newton
commands:
- nix build -v '.#nixosConfigurations.newton.config.system.build.toplevel' --option binary-caches "https://cache.nixos.org"
- mv result newton-new
- name: Build macintosh
commands:
- nix build -v '.#nixosConfigurations.macintosh.config.system.build.toplevel' --option binary-caches "https://cache.nixos.org"
- mv result macintosh-new
- name: Print report
commands:
- echo "lisa:" && nix store diff-closures $(readlink -f lisa-old) $(readlink -f lisa-new)
- echo "newton:" && nix store diff-closures $(readlink -f newton-old) $(readlink -f newton-new)
- echo "macintosh:" && nix store diff-closures $(readlink -f macintosh-old) $(readlink -f macintosh-new)
trigger:
branch:
- main
event:
- pull_request
- cron
---
kind: pipeline
name: Push flake update
type: docker
steps:
- name: Update flake.lock
image: nixpkgs/nix-flakes
commands:
- nix flake update --inputs-from nixpkgs
- nix flake show
- nix flake metadata
- nix flake check
- nix flake check --show-trace
environment:
NIX_PATH: nixpkgs=channel:nixos-unstable
- name: Push updated flake.lock
image: appleboy/drone-git-push
settings:
branch: update-flake
remote: git@github.com:JulienMalka/nix-config.git
force: true
commit: true
force: true
commit_message: "Updated flake.lock"
ssh_key:
from_secret: deploy_key
- name: notify on failure
image: drillster/drone-email
settings:
username: "julien.malka@me.com"
from:
from_secret: email_from
host:
from_secret: email_host
password:
from_secret: email_password
when:
status:
- failure
depends_on:
- Update flake
trigger:
branch:
- main
event:
- cron