Skip to content

Commit 0f2e316

Browse files
authored
Re-work github actions for deploy (#212)
1 parent e84ec73 commit 0f2e316

File tree

5 files changed

+111
-12
lines changed

5 files changed

+111
-12
lines changed

.github/workflows/clojure.yml

+84-9
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,28 @@ on:
77
branches: [ master ]
88

99
jobs:
10+
setup:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v3
14+
- uses: ./.github/setup
15+
- run: bb -m tasks.ci/setup
1016
check:
17+
needs: [ setup ]
1118
runs-on: ubuntu-latest
1219
steps:
1320
- uses: actions/checkout@v3
1421
- uses: ./.github/setup
1522
- run: bb check
1623
test-clj:
24+
needs: [ setup ]
1725
runs-on: ubuntu-latest
1826
steps:
1927
- uses: actions/checkout@v3
2028
- uses: ./.github/setup
2129
- run: bb -m tasks.test/clj
2230
test-cljs:
31+
needs: [ setup ]
2332
runs-on: ubuntu-latest
2433
steps:
2534
- uses: actions/checkout@v3
@@ -38,27 +47,93 @@ jobs:
3847
github_token: ${{ secrets.GITHUB_TOKEN }}
3948
publish_dir: ./target/pwa-release/
4049
force_orphan: true
41-
deploy:
50+
package:
4251
runs-on: ubuntu-latest
4352
needs: [ test-clj, test-cljs, check ]
4453
if: startsWith(github.event.head_commit.message, 'Release ')
45-
environment: deploy
4654
steps:
4755
- uses: actions/checkout@v3
4856
- uses: ./.github/setup
4957
- id: info
5058
run: bb -m tasks.info
51-
- run: bb -m tasks.deploy
52-
env:
53-
CLOJARS_PASSWORD: ${{ secrets.CLOJARS_PASSWORD }}
54-
CLOJARS_USERNAME: ${{ secrets.CLOJARS_USERNAME }}
55-
VSCE_PAT: ${{ secrets.VSCE_PAT }}
56-
OVSX_PAT: ${{ secrets.OVSX_PAT }}
57-
JETBRAINS_TOKEN: ${{ secrets.JETBRAINS_TOKEN }}
59+
- run: bb pkg
60+
- uses: actions/upload-artifact@v4
61+
with:
62+
name: jar
63+
path: target/*.jar
64+
- uses: actions/upload-artifact@v4
65+
with:
66+
name: extension-vscode
67+
path: extension-vscode/*.vsix
68+
- uses: actions/upload-artifact@v4
69+
with:
70+
name: extension-intellij
71+
path: extension-intellij/build/distributions/*.zip
5872
- uses: softprops/action-gh-release@v1
5973
with:
6074
tag_name: ${{ steps.info.outputs.version }}
6175
files: |
6276
target/*.jar
6377
extension-vscode/*.vsix
6478
extension-intellij/build/distributions/*.zip
79+
deploy-clojars:
80+
runs-on: ubuntu-latest
81+
needs: [ package ]
82+
environment: deploy
83+
steps:
84+
- uses: actions/checkout@v3
85+
- uses: ./.github/setup
86+
- uses: actions/download-artifact@v4
87+
with:
88+
name: jar
89+
path: target/
90+
- run: ls target/
91+
- run: bb -m tasks.deploy/deploy-clojars
92+
env:
93+
CLOJARS_PASSWORD: ${{ secrets.CLOJARS_PASSWORD }}
94+
CLOJARS_USERNAME: ${{ secrets.CLOJARS_USERNAME }}
95+
deploy-vsx:
96+
runs-on: ubuntu-latest
97+
needs: [ package ]
98+
environment: deploy
99+
steps:
100+
- uses: actions/checkout@v3
101+
- uses: ./.github/setup
102+
- uses: actions/download-artifact@v4
103+
with:
104+
name: extension-vscode
105+
path: extension-vscode/
106+
- run: ls extension-vscode/
107+
- run: bb -m tasks.deploy/deploy-vscode
108+
env:
109+
VSCE_PAT: ${{ secrets.VSCE_PAT }}
110+
deploy-open-vsx:
111+
runs-on: ubuntu-latest
112+
needs: [ package ]
113+
environment: deploy
114+
steps:
115+
- uses: actions/checkout@v3
116+
- uses: ./.github/setup
117+
- uses: actions/download-artifact@v4
118+
with:
119+
name: extension-vscode
120+
path: extension-vscode/
121+
- run: ls extension-vscode/
122+
- run: bb -m tasks.deploy/deploy-open-vsx
123+
env:
124+
OVSX_PAT: ${{ secrets.OVSX_PAT }}
125+
deploy-intellij:
126+
runs-on: ubuntu-latest
127+
needs: [ package ]
128+
environment: deploy
129+
steps:
130+
- uses: actions/checkout@v3
131+
- uses: ./.github/setup
132+
- uses: actions/download-artifact@v4
133+
with:
134+
name: extension-intellij
135+
path: extension-intellij/build/distributions/
136+
- run: ls extension-intellij/build/distributions/
137+
- run: bb -m tasks.deploy/deploy-intellij
138+
env:
139+
JETBRAINS_TOKEN: ${{ secrets.JETBRAINS_TOKEN }}

deps.edn

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
:shadow
3737
{:jvm-opts ["-Xss16m"]
3838
:extra-deps
39-
{thheller/shadow-cljs {:mvn/version "2.27.4"}}}
39+
{thheller/shadow-cljs {:mvn/version "2.27.4"}}}
4040
:build
4141
{:extra-paths ["src" "dev" "resources"]
4242
:ns-default tasks.build

dev/tasks/ci.clj

+15-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,20 @@
11
(ns tasks.ci
22
(:require [tasks.check :refer [check check*]]
3-
[tasks.test :refer [test test*]]))
3+
[tasks.test :refer [test test*] :as test]
4+
[tasks.tools :refer [clj]]))
5+
6+
(def ^:private commands
7+
["-M:cljfmt"
8+
"-M:cljs"
9+
"-M:cljs:shadow"
10+
"-M:dev"
11+
"-M:kondo"
12+
"-M:test"
13+
"-X:deploy"])
14+
15+
(defn setup []
16+
(test/setup)
17+
(doseq [command commands] (clj "-Sforce" "-Spath" command)))
418

519
(defn ci
620
"Run all CI Checks."

dev/tasks/test.clj

+9
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,15 @@
3535
(install)
3636
(cljs* (get-cljs-deps) :portal.test-ui-runner))
3737

38+
(defn- setup* [version]
39+
(t/clj
40+
"-Sforce" "-Spath" "-Sdeps"
41+
(pr-str {:deps {'org.clojure/clojurescript {:mvn/version version}}})))
42+
43+
(defn setup []
44+
(setup* "1.10.773")
45+
(setup* "1.10.844"))
46+
3847
(defn cljs []
3948
(cljs-runtime "1.10.773")
4049
(cljs-runtime "1.10.844")

dev/tasks/tools.clj

+2-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@
4343
{:out *out* :err *err*})))
4444
start (now)
4545
result @(if-let [f (get fns (first args))]
46-
(f (map name (rest args)) opts)
46+
(or (f (map name (rest args)) opts)
47+
(atom {:exit 0}))
4748
(p/process (map name args) opts))
4849
exit (:exit result)]
4950
(when-not (:inherit opts)

0 commit comments

Comments
 (0)