@@ -2,74 +2,62 @@ name: Databricks CI/CD
2
2
3
3
on :
4
4
push :
5
+ branches :
6
+ - master
5
7
paths :
6
8
- " clouds/databricks/**"
7
- - " !clouds/databricks/**/*.md"
8
9
- " .github/workflows/databricks.yml"
10
+ pull_request :
11
+ paths :
12
+ - " clouds/databricks/**"
13
+ - " .github/workflows/databricks.yml"
14
+ workflow_dispatch :
9
15
10
16
env :
11
17
PYTHON3_VERSION : 3.8.11
12
- GOOGLE_SECRET_MANAGER_PROJECT : cartodb-on-gcp-terraform-ci-cd
18
+ GCLOUD_VERSION : 290.0.1
19
+ GOOGLE_SECRET_MANAGER_PROJECT : ${{ secrets.GOOGLE_SECRET_MANAGER_PROJECT }}
13
20
14
21
jobs :
22
+
15
23
test :
16
24
runs-on : ubuntu-20.04
17
25
timeout-minutes : 30
18
26
env :
19
27
DB_PREFIX : ci_${{ github.sha }}_${{ github.run_id }}_${{ github.run_attempt }}_
20
28
DB_CLUSTER_ID : ${{ secrets.DB_CLUSTER_ID_CI }}
21
- DATABRICKS_SERVER_HOSTNAME : ${{ secrets.DATABRICKS_SERVER_HOSTNAME_CI }}
22
- DATABRICKS_HTTP_PATH : ${{ secrets.DATABRICKS_HTTP_PATH_CI }}
29
+ DB_HTTP_PATH : ${{ secrets.DB_HTTP_PATH_CI }}
30
+ DB_HOST : ${{ secrets.DB_HOST_CI }}
23
31
steps :
24
32
- name : Checkout repo
25
33
uses : actions/checkout@v3
26
- - id : ' auth '
27
- uses : ' google-github-actions/auth@v0'
34
+ - name : Auth google
35
+ uses : google-github-actions/auth@v0
28
36
with :
29
37
credentials_json : ${{ secrets.CARTODB_ON_GCP_TERRAFORM_CI_CD_SERVICE_ACCOUNT_KEY }}
30
-
31
- - id : ' secrets'
32
- uses : ' google-github-actions/get-secretmanager-secrets@v0'
38
+ - name : Get secrets
39
+ id : secrets
40
+ uses : google-github-actions/get-secretmanager-secrets@v0
33
41
with :
34
42
secrets : |-
35
43
databricks-ci-token:projects/cartodb-on-gcp-terraform-ci-cd/secrets/terraform-databricks-aws-ciuser-token
36
44
- name : Check diff
37
45
uses : technote-space/get-diff-action@v4
38
- with :
39
- PATTERNS : ' **/*.+(py|scala)'
40
- FILES : ' Makefile'
41
46
- name : Setup scala
42
47
uses : olafurpg/setup-scala@v11
43
48
with :
44
49
45
- - name : Setup node
46
- uses : actions/setup-node@v1
47
- with :
48
- node-version : ${{ env.NODE_VERSION }}
49
50
- name : Setup python 3
50
51
uses : actions/setup-python@v2
51
52
with :
52
53
python-version : ${{ env.PYTHON3_VERSION }}
53
54
- name : Setup virtualenv
54
55
run : pip install virtualenv
55
- - name : install- databricks- cli
56
+ - name : Setup databricks cli
56
57
57
- - name : Create databricks cfg file
58
- uses :
" DamianReeves/[email protected] "
59
- env :
60
- DATABRICKS_TOKEN : ${{ steps.secrets.outputs.databricks-ci-token }}
61
- with :
62
- path : /home/runner/.databrickscfg
63
- write-mode : overwrite
64
- contents : |
65
- [DEFAULT]
66
- host = https://dbc-fbcbc113-2a61.cloud.databricks.com
67
- token = ${{ env.DATABRICKS_TOKEN }}
68
- jobs-api-version = 2.1
69
58
- name : Run linter and tests
70
59
env :
71
- DATABRICKS_CONFIG_FILE : /home/runner/.databrickscfg
72
- DATABRICKS_TOKEN : ${{ steps.secrets.outputs.databricks-ci-token }}
60
+ DB_TOKEN : ${{ steps.secrets.outputs.databricks-ci-token }}
73
61
run : |
74
62
cd clouds/databricks
75
63
make lint && \
@@ -83,98 +71,83 @@ jobs:
83
71
runs-on : ubuntu-20.04
84
72
timeout-minutes : 20
85
73
env :
86
- DB_CLUSTER_ID : ${{ secrets.DB_CLUSTER_ID_CI }}
87
- DATABRICKS_SERVER_HOSTNAME : ${{ secrets.DATABRICKS_SERVER_HOSTNAME_CI }}
88
- DATABRICKS_HTTP_PATH : ${{ secrets.DATABRICKS_HTTP_PATH_CI }}
74
+ DB_CLUSTER_ID : ${{ secrets.DB_CLUSTER_ID_CD }}
75
+ DB_HTTP_PATH : ${{ secrets.DB_HTTP_PATH_CD }}
76
+ DB_HOST : ${{ secrets.DB_HOST_CD }}
89
77
steps :
90
78
- name : Checkout repo
91
79
uses : actions/checkout@v3
92
- - id : ' auth '
93
- uses : ' google-github-actions/auth@v0'
80
+ - name : Auth google
81
+ uses : google-github-actions/auth@v0
94
82
with :
95
83
credentials_json : ${{ secrets.CARTODB_ON_GCP_TERRAFORM_CI_CD_SERVICE_ACCOUNT_KEY }}
96
- - id : ' secrets'
97
- uses : ' google-github-actions/get-secretmanager-secrets@v0'
84
+ - name : Get secrets
85
+ id : secrets
86
+ uses : google-github-actions/get-secretmanager-secrets@v0
98
87
with :
99
88
secrets : |-
100
89
databricks-ci-token:projects/cartodb-on-gcp-terraform-ci-cd/secrets/terraform-databricks-aws-ciuser-token
101
90
- name : Check diff
102
91
uses : technote-space/get-diff-action@v4
103
- with :
104
- PATTERNS : ' **/*.+(py|scala)'
105
- FILES : ' Makefile'
106
92
- name : Setup scala
107
93
uses : olafurpg/setup-scala@v11
108
94
with :
109
95
110
- - name : install-databricks-cli
111
-
112
- - name : Create databricks cfg file
113
- uses :
" DamianReeves/[email protected] "
114
- env :
115
- DATABRICKS_TOKEN : ${{ steps.secrets.outputs.databricks-ci-token }}
116
- with :
117
- path : /home/runner/.databrickscfg
118
- write-mode : overwrite
119
- contents : |
120
- [DEFAULT]
121
- host = https://dbc-fbcbc113-2a61.cloud.databricks.com
122
- token = ${{ env.DATABRICKS_TOKEN }}
123
- jobs-api-version = 2.1
124
96
- name : Setup python 3
125
97
uses : actions/setup-python@v2
126
98
with :
127
99
python-version : ${{ env.PYTHON3_VERSION }}
128
100
- name : Setup virtualenv
129
101
run : pip install virtualenv
102
+ - name : Setup databricks cli
103
+
130
104
- name : Run deploy
131
105
env :
132
- DATABRICKS_CONFIG_FILE : /home/runner/.databrickscfg
133
- DATABRICKS_TOKEN : ${{ steps.secrets.outputs.databricks-ci-token }}
106
+ DB_TOKEN : ${{ steps.secrets.outputs.databricks-ci-token }}
134
107
run : |
135
108
cd clouds/databricks
136
109
make deploy production=1
137
110
138
111
publish :
139
- name : Publish Artifacts
140
112
needs : test
141
113
if : github.ref_name == 'master'
142
114
runs-on : ubuntu-20.04
115
+ timeout-minutes : 10
143
116
env :
144
- PACKAGE_NAME : carto-analytics-toolbox-core-databricks
145
117
PACKAGE_BUCKET : gs://carto-analytics-toolbox-core/databricks
146
118
steps :
147
- - uses : actions/checkout@v2
148
- with :
149
- fetch-depth : 0
119
+ - name : Checkout repo
120
+ uses : actions/checkout@v3
150
121
- name : Setup scala
151
122
uses : olafurpg/setup-scala@v11
152
- - uses : google-github-actions/auth@v0
123
+ with :
124
+
125
+ - name : Setup python 3
126
+ uses : actions/setup-python@v2
127
+ with :
128
+ python-version : ${{ env.PYTHON3_VERSION }}
129
+ - name : Setup virtualenv
130
+ run : pip install virtualenv
131
+ - name : Auth google
132
+ uses : google-github-actions/auth@v0
153
133
with :
154
134
credentials_json : ${{ secrets.GCLOUD_PRODUCTION_RELEASE_SA }}
155
- project_id : ${{ env .GCLOUD_PRODUCTION_PROJECT }}
135
+ project_id : ${{ secrets .GCLOUD_PRODUCTION_PROJECT }}
156
136
create_credentials_file : true
157
137
- name : Setup gcloud
158
138
uses : google-github-actions/setup-gcloud@v0
159
139
with :
160
140
version : ${{ env.GCLOUD_VERSION }}
161
141
project_id : ${{ secrets.GCLOUD_PRODUCTION_PROJECT }}
162
- - name : Setup python 3
163
- uses : actions/setup-python@v2
164
- with :
165
- python-version : ${{ env.PYTHON3_VERSION }}
166
- - name : Setup virtualenv
167
- run : pip install virtualenv
168
142
- name : Release
169
- run : |
170
- cd clouds/databricks
171
- make ci-release-core production=1
172
143
env :
173
144
PGP_PASSPHRASE : ${{ secrets.PGP_PASSPHRASE }}
174
145
PGP_SECRET : ${{ secrets.PGP_SECRET }}
175
146
SONATYPE_PASSWORD : ${{ secrets.SONATYPE_PASSWORD }}
176
147
SONATYPE_USERNAME : ${{ secrets.SONATYPE_USERNAME }}
177
- if : ${{ env.SONATYPE_PASSWORD != '' && env.SONATYPE_USERNAME != '' }}
148
+ run : |
149
+ cd clouds/databricks
150
+ make ci-release-core production=1
178
151
- name : Create package
179
152
run : |
180
153
cd clouds/databricks
@@ -183,6 +156,6 @@ jobs:
183
156
run : |
184
157
cd clouds/databricks
185
158
gsutil -h "Content-Type:application/zip" -m cp dist/*.zip ${{ env.PACKAGE_BUCKET }}/
186
- gsutil -h "Content-Type:application/zip" -m cp dist/*.zip ${{ env.PACKAGE_BUCKET }}/${{ env.PACKAGE_NAME }} -latest.zip
187
- gsutil -h "Content-Type:application/json" -m cp dist/metadata .json ${{ env.PACKAGE_BUCKET }}/
159
+ gsutil -h "Content-Type:application/zip" -m cp dist/*.zip ${{ env.PACKAGE_BUCKET }}/carto-analytics-toolbox-core-databricks -latest.zip
160
+ gsutil -h "Content-Type:application/json" -m cp dist/* .json ${{ env.PACKAGE_BUCKET }}/
188
161
gsutil -h "Content-Type:text/plain" -m cp dist/modules.sql ${{ env.PACKAGE_BUCKET }}/
0 commit comments