Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat ✨: add updatecli #32

Merged
merged 1 commit into from
Dec 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .github/workflows/updatecli-ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Updatecli
on:
workflow_dispatch:
schedule:
- cron: '0 */6 * * *' # every 6 hours
permissions:
contents: 'write'
pull-requests: 'write'
jobs:
updatecli:
runs-on: 'ubuntu-latest'
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Updatecli in the runner
uses: updatecli/updatecli-action@v2
- name: Get Nixpkgs revision for nixfmt
run: |
# This should not be a URL, because it would allow PRs to run arbitrary code in CI!
url=$(jq -r .pins.nixpkgs.url npins/sources.json)
echo "url=$url" >> "$GITHUB_ENV"
- uses: cachix/install-nix-action@ba0dd844c9180cbf77aa72a116d6fbc515d0e87b # v27
with:
nix_path: nixpkgs=${{ env.url }}
extra_nix_config: |
trusted-public-keys = didactiklabs-nixcache:PxLKN0+ZkP07M8g8/B6xbP6A4MYpqQg6LH7V3muiy/0= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
extra-substituters = https://s3.didactiklabs.io/nix-cache https://cache.nixos.org/
- name: Run Updatecli in apply mode
run: 'updatecli apply --config ./updatecli/updatecli.d --values updatecli/values.yaml'
env:
UPDATECLI_GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
52 changes: 52 additions & 0 deletions updatecli/updatecli.d/nixpkgs-master.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# manifest.yaml
name: Nixpkgs master Update
scms:
default:
kind: 'github'
spec:
email: '[email protected]'
owner: 'didactiklabs'
repository: 'nixbook'
token: '{{ requiredEnv "UPDATECLI_GITHUB_TOKEN" }}'
username: '{{ requiredEnv "GITHUB_ACTOR" }}'
branch: 'main'
# Defines how to get "source" information such as Jenkins version
sources:
default:
name: Get value from json
scmid: 'default'
kind: json
spec:
file: npins/sources.json
key: pins.nixpkgs-master.revision
# Defines "conditions" required to update targets
conditions:
default:
name: Check if revision is the same
scmid: 'default'
kind: shell
spec:
environments:
- name: PATH
command: test $(git ls-remote https://github.com/NixOS/nixpkgs master | head -n 1 | awk '{print $1}') !=
# Defines "targets" which need to be updated if different than "source" information.
targets:
default:
name: npins nixpkgs-master update
kind: shell
scmid: 'default'
spec:
environments:
- name: PATH
- name: NIX_PATH
command: nix-shell -p npins --command "npins update nixpkgs-master" && echo
# Define action configurations if one needs to be created
actions:
default:
kind: 'github/pullrequest'
scmid: 'default'
spec:
automerge: false
description: 'Update Nixpkgs Master using npins.'
draft: false
title: 'UPDATECLI: Update Nixpkgs Master'
52 changes: 52 additions & 0 deletions updatecli/updatecli.d/nixpkgs-unstable.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# manifest.yaml
name: Nixpkgs Unstable Update
scms:
default:
kind: 'github'
spec:
email: '[email protected]'
owner: 'didactiklabs'
repository: 'nixbook'
token: '{{ requiredEnv "UPDATECLI_GITHUB_TOKEN" }}'
username: '{{ requiredEnv "GITHUB_ACTOR" }}'
branch: 'main'
# Defines how to get "source" information such as Jenkins version
sources:
default:
name: Get value from json
scmid: 'default'
kind: json
spec:
file: npins/sources.json
key: pins.nixpkgs-unstable.revision
# Defines "conditions" required to update targets
conditions:
default:
name: Check if revision is the same
scmid: 'default'
kind: shell
spec:
environments:
- name: PATH
command: test $(git ls-remote https://github.com/NixOS/nixpkgs nixos-unstable | head -n 1 | awk '{print $1}') !=
# Defines "targets" which need to be updated if different than "source" information.
targets:
default:
name: NpinsUpdate
kind: shell
scmid: 'default'
spec:
environments:
- name: PATH
- name: NIX_PATH
command: nix-shell -p npins --command "npins update nixpkgs-unstable" && echo
# Define action configurations if one needs to be created
actions:
default:
kind: 'github/pullrequest'
scmid: 'default'
spec:
automerge: false
description: 'Update Nixpkgs Unstable using npins.'
draft: false
title: 'UPDATECLI: Update Nixpkgs Unstable'
52 changes: 52 additions & 0 deletions updatecli/updatecli.d/nixpkgs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# manifest.yaml
name: Nixpkgs Update
scms:
default:
kind: 'github'
spec:
email: '[email protected]'
owner: 'didactiklabs'
repository: 'nixbook'
token: '{{ requiredEnv "UPDATECLI_GITHUB_TOKEN" }}'
username: '{{ requiredEnv "GITHUB_ACTOR" }}'
branch: 'main'
# Defines how to get "source" information such as Jenkins version
sources:
default:
name: Get value from json
scmid: 'default'
kind: json
spec:
file: npins/sources.json
key: pins.nixpkgs.revision
# Defines "conditions" required to update targets
conditions:
default:
name: Check if revision is the same
scmid: 'default'
kind: shell
spec:
environments:
- name: PATH
command: test $(git ls-remote https://github.com/NixOS/nixpkgs nixos-24.11 | head -n 1 | awk '{print $1}') !=
# Defines "targets" which need to be updated if different than "source" information.
targets:
default:
name: NpinsUpdate
kind: shell
scmid: 'default'
spec:
environments:
- name: PATH
- name: NIX_PATH
command: nix-shell -p npins --command "npins update nixpkgs" && echo
# Define action configurations if one needs to be created
actions:
default:
kind: 'github/pullrequest'
scmid: 'default'
spec:
automerge: false
description: 'Update Nixpkgs Master npins.'
draft: false
title: 'UPDATECLI: Update Nixpkgs'
5 changes: 5 additions & 0 deletions updatecli/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
github:
user: 'GitHub Actions Bot'
email: '[email protected]'
username: 'didactik-bot'
token: 'UPDATECLI_GITHUB_TOKEN'
Loading