88 description : ' Branch name to release from'
99 default : " master"
1010
11+ env :
12+ COMPONENTS : ' ["gooddata-api-client","gooddata-pandas","gooddata-fdw","gooddata-sdk","gooddata-dbt","gooddata-flight-server","gooddata-flexconnect","gooddata-pipelines"]'
13+
1114jobs :
12- dev-release :
13- name : Releasing master as dev
15+ matrix-components :
16+ name : Prepare matrix components
17+ runs-on : ubuntu-latest
18+ outputs :
19+ components : ${{ steps.export.outputs.components }}
20+ steps :
21+ - name : Export components JSON
22+ id : export
23+ run : echo "components=${COMPONENTS}" >> "$GITHUB_OUTPUT"
24+
25+ build :
26+ name : Build ${{ matrix.component }}
1427 runs-on : ubuntu-latest
28+ needs : matrix-components
29+ permissions :
30+ contents : read
1531 strategy :
1632 matrix :
17- component :
18- - gooddata-api-client
19- - gooddata-pandas
20- - gooddata-fdw
21- - gooddata-sdk
22- - gooddata-dbt
23- - gooddata-flight-server
24- - gooddata-flexconnect
25- - gooddata-pipelines
33+ component : ${{ fromJSON(needs.matrix-components.outputs.components) }}
2634 steps :
2735 - name : Checkout Repository
2836 uses : actions/checkout@v4
@@ -43,10 +51,32 @@ jobs:
4351 cd packages/${{ matrix.component }}
4452 fi
4553 uv build --out-dir dist
54+ - name : Upload ${{ matrix.component }} artifacts
55+ uses : actions/upload-artifact@v4
56+ with :
57+ name : dist-${{ matrix.component }}
58+ path : ${{ matrix.component == 'gooddata-api-client' && format('{0}/dist', matrix.component) || format('packages/{0}/dist', matrix.component) }}
59+ if-no-files-found : error
60+
61+ publish :
62+ name : Publish ${{ matrix.component }}
63+ runs-on : ubuntu-latest
64+ needs :
65+ - matrix-components
66+ - build
67+ permissions :
68+ id-token : write
69+ strategy :
70+ matrix :
71+ component : ${{ fromJSON(needs.matrix-components.outputs.components) }}
72+ steps :
73+ - name : Download ${{ matrix.component }} artifacts
74+ uses : actions/download-artifact@v4
75+ with :
76+ name : dist-${{ matrix.component }}
77+ path : dist
4678 - name : Push ${{ matrix.component}} to pypi
4779 uses : pypa/gh-action-pypi-publish@release/v1
4880 with :
49- user : __token__
50- password : ${{ secrets.PYPI_API_TOKEN }}
51- packages-dir : ${{ matrix.component == 'gooddata-api-client' && format('{0}/dist', matrix.component) || format('packages/{0}/dist', matrix.component) }}
81+ packages-dir : dist
5282 verbose : true
0 commit comments