Skip to content
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
4 changes: 2 additions & 2 deletions .github/workflows/build-vmlinux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
run: bb build "$NAME"

- name: Upload build outputs
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: out-${{ matrix.name }}
path: out/
Expand All @@ -70,7 +70,7 @@ jobs:
babashka-version: 1.12.218

- name: Download all build outputs
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
pattern: out-*
path: dist
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: DeLaGuardo/clojure-lint-action@2d6013175031096ae07bc9b90a07173029ad7dc9 # master
- uses: DeLaGuardo/clojure-lint-action@2d6013175031096ae07bc9b90a07173029ad7dc9 # master (no usable release tag; v1 Dockerfile broken)
with:
clj-kondo-args: --lint src
check-name: clj-kondo
Expand Down
20 changes: 10 additions & 10 deletions src/vmlinux/gha/artifacts.clj
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,28 @@
[vmlinux.krn.build :as build]))

(defrecord VmLinuxArtifact [artifact-name])
(defrecord ArtifactMeta [arch version binary sha256-sum])
(defrecord ArtifactMeta [name arch version binary sha256-sum])

(def ^:private stage-dir "out")

(defn- artifact-name
[{:keys [arch version binary-path]}]
(str (fs/file-name binary-path) "-" (name arch) "-" version))
(defn- artifact-name [{:keys [name]}] (str "vmlinux-" name))

(defn prepare-artifact
[{:keys [arch version binary-path sha256-sum], :as vmlinux-build}]
(let [name (artifact-name vmlinux-build)
dir (str stage-dir "/" name)
[{:keys [name arch version binary-path sha256-sum], :as vmlinux-build}]
(let [art-name (artifact-name vmlinux-build)
dir (str stage-dir "/" art-name)
binary (fs/file-name binary-path)]
(fs/create-dirs dir)
(fs/copy binary-path (str dir "/" binary) {:replace-existing true})
(spit (str dir "/meta.edn") (pr-str (into {} (->ArtifactMeta arch version binary sha256-sum))))
(->VmLinuxArtifact name)))
(spit (str dir "/meta.edn")
(pr-str (into {} (->ArtifactMeta name arch version binary sha256-sum))))
(->VmLinuxArtifact art-name)))

(defn load-artifact
[dir]
(let [am (map->ArtifactMeta (edn/read-string (slurp (str dir "/meta.edn"))))]
(build/map->VmLinuxBuild {:arch (:arch am),
(build/map->VmLinuxBuild {:name (:name am),
:arch (:arch am),
:version (:version am),
:binary-path (str dir "/" (:binary am)),
:sha256-sum (:sha256-sum am)})))
4 changes: 1 addition & 3 deletions src/vmlinux/gha/release.clj
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@
"VMLinux images used within [Hyper](https://github.com/harmont-dev/hyper) built off of `{{sha}}`."
{:sha sha}))

(defn- asset-name
[{:keys [arch version binary-path]}]
(str (fs/file-name binary-path) "-" (name arch) "-" version))
(defn- asset-name [{:keys [name]}] (str "vmlinux-" name))

(defn exists?
[sha]
Expand Down
6 changes: 3 additions & 3 deletions src/vmlinux/krn/build.clj
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
[babashka.process :refer [shell]]
[clojure.string :as str]))

(defrecord VmLinuxBuild [arch version binary-path sha256-sum])
(defrecord VmLinuxBuild [name arch version binary-path sha256-sum])

(defn- nproc [] (.availableProcessors (Runtime/getRuntime)))

Expand All @@ -21,10 +21,10 @@
:aarch64 {:kbuild-arch "arm64", :target "Image", :boot-subpath "arch/arm64/boot/Image"}})

(defn compile
[path {:keys [arch version config-file]}]
[path {:keys [name arch version config-file]}]
(let [{:keys [kbuild-arch target boot-subpath]} (arch-kbuild arch)]
(fs/copy (fs/absolutize config-file) (str path "/.config") {:replace-existing true})
(shell {:dir path} "make" (str "ARCH=" kbuild-arch) "olddefconfig")
(shell {:dir path} "make" (str "ARCH=" kbuild-arch) (str "-j" (nproc)) target)
(let [binary (str path "/" boot-subpath)]
(->VmLinuxBuild arch version binary (file-sha256 binary)))))
(->VmLinuxBuild name arch version binary (file-sha256 binary)))))