mirror of
https://github.com/kiranshila/Doplarr.git
synced 2026-03-31 06:24:10 -04:00
36
.github/workflows/main.yml
vendored
36
.github/workflows/main.yml
vendored
@@ -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 }}
|
||||
|
||||
@@ -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}))
|
||||
|
||||
25
deps.edn
25
deps.edn
@@ -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}}}
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
:as :json-string-keys
|
||||
:coerce :always
|
||||
:async? true
|
||||
:version :http-1.1
|
||||
:headers {"X-API-Key" key}}
|
||||
params)
|
||||
put
|
||||
|
||||
Reference in New Issue
Block a user