Merge pull request #156 from kiranshila/develop

merge from develop
This commit is contained in:
Kiran Shila
2025-12-13 16:55:31 -08:00
committed by GitHub
5 changed files with 95 additions and 100 deletions

View File

@@ -1,63 +1,59 @@
name: Main name: Main
on: push on: push
env: env:
REGISTRY: ghcr.io REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }} IMAGE_NAME: ${{ github.repository }}
jobs: jobs:
build-and-publish: build-and-publish:
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
contents: write contents: write
packages: write packages: write
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v6
- name: Prepare java
- name: Prepare java uses: actions/setup-java@v3
uses: actions/setup-java@v2 with:
with: distribution: "adopt"
distribution: "adopt" java-version: "22"
java-version: "16" - name: Install clojure tools
uses: DeLaGuardo/setup-clojure@13.4
- name: Install clojure tools with:
uses: DeLaGuardo/setup-clojure@3.5 cli: latest
with: - name: Build bot and copy out jar for docker
cli: 1.10.3.943 shell: bash
run: |
- name: Build bot and copy out jar for docker clojure -T:build uber
shell: bash cp target/doplarr.jar docker
run: | - name: Release tagged version
clojure -T:build uber uses: softprops/action-gh-release@v2
cp target/doplarr.jar docker if: startsWith(github.ref, 'refs/tags/')
with:
- name: Release tagged version files: |
uses: softprops/action-gh-release@v1 target/doplarr.jar
if: startsWith(github.ref, 'refs/tags/') config.edn
with: - name: Set up QEMU
files: | uses: docker/setup-qemu-action@v3
target/doplarr.jar - name: Set up Docker Buildx
config.edn uses: docker/setup-buildx-action@v3
- name: Log in to the Container registry
- name: Log in to the Container registry uses: docker/login-action@v3
uses: docker/login-action@v1 with:
with: registry: ${{ env.REGISTRY }}
registry: ${{ env.REGISTRY }} username: ${{ github.actor }}
username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }}
password: ${{ secrets.GITHUB_TOKEN }} - name: Extract metadata (tags, labels) for Docker
id: meta
- name: Extract metadata (tags, labels) for Docker uses: docker/metadata-action@v5
id: meta with:
uses: docker/metadata-action@v3 images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
with: - name: Build and push Docker image
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} uses: docker/build-push-action@v6
with:
- name: Build and push Docker image context: .
uses: docker/build-push-action@v2 file: docker/Dockerfile
with: platforms: linux/amd64,linux/arm64
context: docker push: true
push: true tags: ${{ steps.meta.outputs.tags }}
tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }}
labels: ${{ steps.meta.outputs.labels }}

View File

@@ -1,8 +1,23 @@
(ns build (ns build
(:require (:require [clojure.tools.build.api :as b]))
[org.corfield.build :as bb]))
(def class-dir "target/classes")
(def uber-file "target/doplarr.jar")
;; delay to defer side effects (artifact downloads)
(def basis (delay (b/create-basis {:project "deps.edn"})))
(defn clean [_]
(b/delete {:path "target"}))
(defn uber [_] (defn uber [_]
(bb/clean nil) (clean nil)
(bb/uber {:uber-file "target/doplarr.jar" (b/copy-dir {:src-dirs ["src" "resources"]
:main 'doplarr.core})) :target-dir class-dir})
(b/compile-clj {:basis @basis
:ns-compile '[doplarr.core]
:class-dir class-dir})
(b/uber {:class-dir class-dir
:uber-file uber-file
:basis @basis
:main 'doplarr.core}))

View File

@@ -1,23 +1,20 @@
{:paths ["src" "resources"] {:paths ["src" "resources"]
:deps {org.clojure/clojure {:mvn/version "1.11.1"} :deps {org.clojure/clojure {:mvn/version "1.12.4"}
io.aviso/pretty {:mvn/version "1.1.1"} org.clj-commons/pretty {:mvn/version "3.6.7"}
org.clojure/core.cache {:mvn/version "1.0.225"} org.clojure/core.cache {:mvn/version "1.1.234"}
yogthos/config {:mvn/version "1.2.0"} yogthos/config {:mvn/version "1.2.1"}
com.rpl/specter {:mvn/version "1.1.4"} com.rpl/specter {:mvn/version "1.1.6"}
org.suskalo/discljord {:git/url "https://github.com/kiranshila/discljord" org.suskalo/discljord {:git/url "https://github.com/kiranshila/discljord"
:git/sha "b66cdbed645ff052dd5f18361a0a7722a4860304"} :git/sha "b66cdbed645ff052dd5f18361a0a7722a4860304"}
expound/expound {:mvn/version "0.9.0"} expound/expound {:mvn/version "0.9.0"}
org.clojure/core.async {:mvn/version "1.5.648"} org.clojure/core.async {:mvn/version "1.8.741"}
cheshire/cheshire {:mvn/version "5.11.0"} cheshire/cheshire {:mvn/version "6.1.0"}
fmnoise/flow {:mvn/version "4.2.1"} fmnoise/flow {:mvn/version "4.3.0"}
hato/hato {:mvn/version "0.8.2"} hato/hato {:mvn/version "1.0.0"}
com.taoensso/timbre {:mvn/version "5.2.1"} com.taoensso/timbre {:mvn/version "6.8.0"}
camel-snake-kebab/camel-snake-kebab {:mvn/version "0.4.3"}} camel-snake-kebab/camel-snake-kebab {:mvn/version "0.4.3"}}
:jvm-opts ["-Dconfig=config.edn"]
:aliases {:build {:extra-paths ["build"] :aliases {:build {:extra-paths ["build"]
:deps {io.github.seancorfield/build-clj :deps {io.github.clojure/tools.build {:git/tag "v0.10.11" :git/sha "c6c670a"}}
{:git/tag "v0.8.3" :git/sha "7ac1f8d"}}
:ns-default build}}} :ns-default build}}}

View File

@@ -1,30 +1,16 @@
FROM clojure:tools-deps-1.11.1.1435 as builder FROM eclipse-temurin:22_36-jre-alpine AS runtime
WORKDIR /src
# CACHING DEPS
COPY ./deps.edn ./
RUN clojure -P
RUN clojure -T:build || true
COPY ./build/ /src/build/
COPY ./src/ /src/src/
RUN clojure -T:build uber
FROM eclipse-temurin:22_36-jre-alpine as runtime
WORKDIR /app WORKDIR /app
RUN \ RUN apk add --no-cache \
apk add --no-cache \
ca-certificates \ ca-certificates \
tini \ tini \
tzdata tzdata
COPY --from=builder /src/target/doplarr.jar ./ COPY target/doplarr.jar .
ENTRYPOINT ["/sbin/tini", "--"]
CMD ["java","-jar","/app/doplarr.jar"]
LABEL "maintainer"="Kiran Shila <me@kiranshila.com>" ENTRYPOINT ["/sbin/tini", "--"]
LABEL "org.opencontainers.image.source"="https://github.com/kiranshila/Doplarr" CMD ["java", "-jar", "/app/doplarr.jar"]
LABEL maintainer="Kiran Shila <me@kiranshila.com>"
LABEL org.opencontainers.image.source="https://github.com/kiranshila/Doplarr"

View File

@@ -30,6 +30,7 @@
:as :json-string-keys :as :json-string-keys
:coerce :always :coerce :always
:async? true :async? true
:version :http-1.1
:headers {"X-API-Key" key}} :headers {"X-API-Key" key}}
params) params)
put put