mirror of
https://github.com/daylinmorgan/oizys.git
synced 2024-12-22 10:10:45 -06:00
Compare commits
3 commits
79e8348c84
...
4c37ca0424
Author | SHA1 | Date | |
---|---|---|---|
4c37ca0424 | |||
dea2d9e473 | |||
0a13e2b754 |
7 changed files with 41 additions and 22 deletions
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
|
@ -41,7 +41,7 @@ jobs:
|
||||||
- uses: ./.github/actions/nix
|
- uses: ./.github/actions/nix
|
||||||
with:
|
with:
|
||||||
attic_token: ${{ secrets.ATTIC_TOKEN }}
|
attic_token: ${{ secrets.ATTIC_TOKEN }}
|
||||||
clean: true
|
# clean: true
|
||||||
btrfs: true
|
btrfs: true
|
||||||
|
|
||||||
- name: write lock file
|
- name: write lock file
|
||||||
|
|
14
.github/workflows/update.yml
vendored
14
.github/workflows/update.yml
vendored
|
@ -2,6 +2,13 @@ name: Flake Update / Build
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
hosts:
|
||||||
|
description: 'list of hosts to build'
|
||||||
|
required: true
|
||||||
|
default: 'othalan,algiz'
|
||||||
|
type: string
|
||||||
|
|
||||||
schedule:
|
schedule:
|
||||||
# At minute 00:00 on Monday, Wednesday, and Friday.
|
# At minute 00:00 on Monday, Wednesday, and Friday.
|
||||||
- cron: 0 0 * * 1,3,5
|
- cron: 0 0 * * 1,3,5
|
||||||
|
@ -51,7 +58,7 @@ jobs:
|
||||||
nix run .
|
nix run .
|
||||||
--
|
--
|
||||||
cache
|
cache
|
||||||
--host,=",othalan,algiz,mannaz,naudiz"
|
--host,="${{ inputs.hosts }}"
|
||||||
--flake .
|
--flake .
|
||||||
--debug
|
--debug
|
||||||
--
|
--
|
||||||
|
@ -94,7 +101,7 @@ jobs:
|
||||||
nix run .
|
nix run .
|
||||||
--
|
--
|
||||||
ci update
|
ci update
|
||||||
--host,=othalan,algiz,mannaz,naudiz
|
--host,="${{ inputs.hosts }}"
|
||||||
--flake .
|
--flake .
|
||||||
--debug
|
--debug
|
||||||
--
|
--
|
||||||
|
@ -102,7 +109,8 @@ jobs:
|
||||||
|
|
||||||
- run: |
|
- run: |
|
||||||
echo "# system diffs" >> $GITHUB_STEP_SUMMARY
|
echo "# system diffs" >> $GITHUB_STEP_SUMMARY
|
||||||
for host in othalan algiz mannaz naudiz; do
|
hosts="${{ inputs.hosts }}"
|
||||||
|
for host in ${hosts//,/ }; do
|
||||||
echo "## $host" >> $GITHUB_STEP_SUMMARY
|
echo "## $host" >> $GITHUB_STEP_SUMMARY
|
||||||
nix run "nixpkgs#nvd" -- --color always diff ./$host-current ./$host-updated >> $host-summary.md
|
nix run "nixpkgs#nvd" -- --color always diff ./$host-current ./$host-updated >> $host-summary.md
|
||||||
printf '```\n%s\n```\n' "$(nix run "nixpkgs#nvd" -- diff ./$host-current ./$host-updated)" >> $GITHUB_STEP_SUMMARY
|
printf '```\n%s\n```\n' "$(nix run "nixpkgs#nvd" -- diff ./$host-current ./$host-updated)" >> $GITHUB_STEP_SUMMARY
|
||||||
|
|
16
flake.lock
16
flake.lock
|
@ -318,11 +318,11 @@
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731978971,
|
"lastModified": 1732054045,
|
||||||
"narHash": "sha256-P9DXCxDvjFt4aMc2x67hvSpNvSqX18X840w6cEVZXoo=",
|
"narHash": "sha256-/2SKmO6AWDqvhN8A8VxA244Au3LwFu7wOXzudWQXr9s=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "67cee430061626ccd73dc6d30eed9db289053608",
|
"rev": "c4eda46d0ef022a17348623beec4154ba34af691",
|
||||||
"revCount": 5480,
|
"revCount": 5482,
|
||||||
"submodules": true,
|
"submodules": true,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/hyprwm/Hyprland/"
|
"url": "https://github.com/hyprwm/Hyprland/"
|
||||||
|
@ -498,11 +498,11 @@
|
||||||
"lix": {
|
"lix": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731992627,
|
"lastModified": 1732056932,
|
||||||
"narHash": "sha256-OjrXEVD8LtZB5X7LtPCdNx4n5iZOQ2nJmpDlM/foEkI=",
|
"narHash": "sha256-3ubtSu0D+BUV5FKmBU7kTEXlI/okp/j1xC/ODC7LgTA=",
|
||||||
"rev": "f116608a20430b8484814300cdf22eebeb75a59f",
|
"rev": "b0d7a816135de1cd551b8a54f5497148bf59d81d",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/f116608a20430b8484814300cdf22eebeb75a59f.tar.gz?rev=f116608a20430b8484814300cdf22eebeb75a59f"
|
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/b0d7a816135de1cd551b8a54f5497148bf59d81d.tar.gz?rev=b0d7a816135de1cd551b8a54f5497148bf59d81d"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
|
|
|
@ -8,7 +8,7 @@ buildNimblePackage {
|
||||||
verions = "unstable";
|
verions = "unstable";
|
||||||
src = lib.cleanSource ./.;
|
src = lib.cleanSource ./.;
|
||||||
nativeBuildInputs = [ openssl ];
|
nativeBuildInputs = [ openssl ];
|
||||||
nimbleDepsHash = "sha256-1YoGvWvoJJSMauDbeH8ZHuK+QQot48Mkye9TeWteT8k=";
|
nimbleDepsHash = "sha256-IWdlWC+j2h15WjVXXdDyxDZsb0/Ti1+jy6RfmqHFkjs=";
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "nix begat oizys";
|
description = "nix begat oizys";
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
"packages": {
|
"packages": {
|
||||||
"hwylterm": {
|
"hwylterm": {
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"vcsRevision": "c5f70cec4e40ba396f59162e98c359a1a1ea4fe1",
|
"vcsRevision": "ef573dc0f8bf39f80704f92cfab39e1b9af82492",
|
||||||
"url": "https://github.com/daylinmorgan/hwylterm",
|
"url": "https://github.com/daylinmorgan/hwylterm",
|
||||||
"downloadMethod": "git",
|
"downloadMethod": "git",
|
||||||
"dependencies": [],
|
"dependencies": [],
|
||||||
"checksums": {
|
"checksums": {
|
||||||
"sha1": "5727969a8e82e29a7581c13cc7cc45996dbca5a1"
|
"sha1": "ccb51201898b5e913ffee1e18bdf4d9fc4004386"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"jsony": {
|
"jsony": {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
## nix begat oizys
|
## nix begat oizys
|
||||||
import std/[os, osproc, sequtils, strformat, strutils]
|
import std/[os, osproc, sequtils, strformat, strutils, tables]
|
||||||
import hwylterm, hwylterm/[hwylcli]
|
import hwylterm, hwylterm/[hwylcli]
|
||||||
import oizys/[context, github, nix, logging]
|
import oizys/[context, github, nix, logging]
|
||||||
|
|
||||||
|
@ -77,17 +77,27 @@ hwylCli:
|
||||||
ciUpdate(args)
|
ciUpdate(args)
|
||||||
|
|
||||||
[gha]
|
[gha]
|
||||||
... "trigger GHA"
|
... """
|
||||||
|
trigger GHA
|
||||||
|
|
||||||
|
examples:
|
||||||
|
[b]oizys gha update[/] --input:hosts:othalan,algiz,mannaz
|
||||||
|
"""
|
||||||
flags:
|
flags:
|
||||||
# make a key/value input that is passed to workflows and encoded in json
|
input:
|
||||||
# i.e. --input:ref:main
|
T seq[KVString]
|
||||||
|
? "inputs for dispatch"
|
||||||
`ref`:
|
`ref`:
|
||||||
T string
|
T string
|
||||||
? "git ref/branch/tag to trigger workflow on"
|
? "git ref/branch/tag to trigger workflow on"
|
||||||
* "main"
|
* "main"
|
||||||
run:
|
run:
|
||||||
|
# TODO: support file operations like gh
|
||||||
|
# i.e. @flake.lock means read a file a flake.lock and use it's contents
|
||||||
if args.len == 0: fatalQuit "expected workflow file name"
|
if args.len == 0: fatalQuit "expected workflow file name"
|
||||||
createDispatch(args[0], `ref`)
|
let inputs =
|
||||||
|
input.mapIt((it.key, it.val)).toTable()
|
||||||
|
createDispatch(args[0], `ref`, inputs)
|
||||||
|
|
||||||
[dry]
|
[dry]
|
||||||
... "dry run build"
|
... "dry run build"
|
||||||
|
|
|
@ -100,13 +100,14 @@ proc getInProgressRun(
|
||||||
|
|
||||||
warn "timeout reached waiting for workflow to start"
|
warn "timeout reached waiting for workflow to start"
|
||||||
|
|
||||||
proc createDispatch*(workflowFileName: string, `ref`: string) =
|
proc createDispatch*(workflowFileName: string, `ref`: string, inputs: Table[string, string]) =
|
||||||
## https://docs.github.com/en/rest/actions/workflows?apiVersion=2022-11-28#create-a-workflow-dispatch-event
|
## https://docs.github.com/en/rest/actions/workflows?apiVersion=2022-11-28#create-a-workflow-dispatch-event
|
||||||
let workflow =
|
let workflow =
|
||||||
if workflowFileName.endsWith(".yml") or workflowFileName.endsWith(".yaml"): workflowFileName
|
if workflowFileName.endsWith(".yml") or workflowFileName.endsWith(".yaml"): workflowFileName
|
||||||
else: workflowFileName & ".yml"
|
else: workflowFileName & ".yml"
|
||||||
let body = %*{"ref": `ref`}
|
let body = %*{"ref": `ref`, "inputs": inputs}
|
||||||
info fmt"creating dispatch event for {workflow}"
|
info fmt"creating dispatch event for {workflow}"
|
||||||
|
debug "with body: " & $body
|
||||||
postGhApi(
|
postGhApi(
|
||||||
fmt"https://api.github.com/repos/daylinmorgan/oizys/actions/workflows/{workflow}/dispatches",
|
fmt"https://api.github.com/repos/daylinmorgan/oizys/actions/workflows/{workflow}/dispatches",
|
||||||
body
|
body
|
||||||
|
|
Loading…
Reference in a new issue