-
Notifications
You must be signed in to change notification settings - Fork 0
/
action.yml
109 lines (93 loc) · 3.32 KB
/
action.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
name: Clojars Deployment
description: Build a JAR and deploy to Clojars
inputs:
group-id:
description: The Clojars Group ID. Defaults to 'com.yetanalytics'.
required: false
default: 'com.yetanalytics'
artifact-id:
description: The Clojars Artifact ID (i.e. the name of the lib itself)
required: true
license-name:
description: >
The license that the project is distributed under.
Defaults to 'Apache-2.0'.
required: false
default: 'Apache-2.0'
license-url:
description: >
A URL that links to the text of the license.
Defaults to 'https://www.apache.org/licenses/LICENSE-2.0.txt'.
required: false
default: 'https://www.apache.org/licenses/LICENSE-2.0.txt'
version:
description: The version string.
required: true
src-dirs:
description: >
A quoted array of the source directories. Defaults to '["src/main"]'.
required: false
default: '["src/main"]'
resource-dirs:
description: >
A quoted array of the resource directories. Defaults to '["resources"]'.
Pass '[]' if no resource directories exist.
required: false
default: '["resources"]'
publish:
description: >
Whether or not to actually publish to Clojars.
Default true; turn off for debugging.
required: false
default: true
# GitHub Secrets
clojars-username:
description: The Clojars username (should be stored as a GitHub secret).
required: true
clojars-deploy-token:
description: The Clojars deploy token (should be stored as a GitHub secret).
required: true
runs:
using: "composite"
steps:
- name: Construct aliases
id: 'build-aliases'
shell: bash
run: >-
echo "aliases='{:aliases {
:action-deps {:replace-deps {com.yetanalytics/clojars-build {:mvn/version \"1.0.0\"}} :ns-default com.yet}
:build {:exec-fn com.yetanalytics.clojars-build/jar}
:deploy {:exec-fn com.yetanalytics.clojars-build/deploy}}}'"
>> $GITHUB_OUTPUT
- name: Build JAR file
shell: bash
run: >
clojure -Sdeps ${{ steps.build-aliases.outputs.aliases }}
-X:action-deps:build
:group-id '"${{ inputs.group-id }}"'
:artifact-id '"${{ inputs.artifact-id }}"'
:version '"${{ inputs.version }}"'
:src-dirs '${{ inputs.src-dirs }}'
:resource-dirs '${{ inputs.resource-dirs }}'
:license-name '"${{ inputs.license-name }}"'
:license-url '"${{ inputs.license-url }}"'
:github-repo '"${{ github.repository }}"'
:github-sha '"${{ github.sha }}"'
# This is a debug step that exists for sanity checking
- name: Publish artifact
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.artifact-id }}-artifact-${{ inputs.version }}
path: target/${{ inputs.artifact-id }}-${{ inputs.version }}.jar
- name: Deploy to Clojars
shell: bash
if: ${{ inputs.publish == 'true' }}
run: >
clojure -Sdeps ${{ steps.build-aliases.outputs.aliases }}
-X:action-deps:deploy
:group-id '"${{ inputs.group-id }}"'
:artifact-id '"${{ inputs.artifact-id }}"'
:version '"${{ inputs.version }}"'
env:
CLOJARS_USERNAME: ${{ inputs.clojars-username }}
CLOJARS_PASSWORD: ${{ inputs.clojars-deploy-token }}