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

View File

@@ -1,8 +1,23 @@
(ns build
(:require
[org.corfield.build :as bb]))
(:require [clojure.tools.build.api :as b]))
(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 [_]
(bb/clean nil)
(bb/uber {:uber-file "target/doplarr.jar"
(clean nil)
(b/copy-dir {:src-dirs ["src" "resources"]
: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"]
:deps {org.clojure/clojure {:mvn/version "1.11.1"}
io.aviso/pretty {:mvn/version "1.1.1"}
org.clojure/core.cache {:mvn/version "1.0.225"}
yogthos/config {:mvn/version "1.2.0"}
com.rpl/specter {:mvn/version "1.1.4"}
:deps {org.clojure/clojure {:mvn/version "1.12.4"}
org.clj-commons/pretty {:mvn/version "3.6.7"}
org.clojure/core.cache {:mvn/version "1.1.234"}
yogthos/config {:mvn/version "1.2.1"}
com.rpl/specter {:mvn/version "1.1.6"}
org.suskalo/discljord {:git/url "https://github.com/kiranshila/discljord"
:git/sha "b66cdbed645ff052dd5f18361a0a7722a4860304"}
expound/expound {:mvn/version "0.9.0"}
org.clojure/core.async {:mvn/version "1.5.648"}
cheshire/cheshire {:mvn/version "5.11.0"}
fmnoise/flow {:mvn/version "4.2.1"}
hato/hato {:mvn/version "0.8.2"}
com.taoensso/timbre {:mvn/version "5.2.1"}
org.clojure/core.async {:mvn/version "1.8.741"}
cheshire/cheshire {:mvn/version "6.1.0"}
fmnoise/flow {:mvn/version "4.3.0"}
hato/hato {:mvn/version "1.0.0"}
com.taoensso/timbre {:mvn/version "6.8.0"}
camel-snake-kebab/camel-snake-kebab {:mvn/version "0.4.3"}}
:jvm-opts ["-Dconfig=config.edn"]
:aliases {:build {:extra-paths ["build"]
:deps {io.github.seancorfield/build-clj
{:git/tag "v0.8.3" :git/sha "7ac1f8d"}}
:deps {io.github.clojure/tools.build {:git/tag "v0.10.11" :git/sha "c6c670a"}}
:ns-default build}}}

View File

@@ -1,30 +1,16 @@
FROM clojure:tools-deps-1.11.1.1435 as builder
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
FROM eclipse-temurin:22_36-jre-alpine AS runtime
WORKDIR /app
RUN \
apk add --no-cache \
RUN apk add --no-cache \
ca-certificates \
tini \
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>"
LABEL "org.opencontainers.image.source"="https://github.com/kiranshila/Doplarr"
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
:coerce :always
:async? true
:version :http-1.1
:headers {"X-API-Key" key}}
params)
put