mirror of
https://github.com/kiranshila/Doplarr.git
synced 2026-03-31 06:24:10 -04:00
114
.github/workflows/main.yml
vendored
114
.github/workflows/main.yml
vendored
@@ -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 }}
|
|
||||||
|
|||||||
@@ -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}))
|
||||||
|
|||||||
25
deps.edn
25
deps.edn
@@ -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}}}
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user