5656    outputs :
5757      js : ${{ steps.filter.outputs.js }} 
5858      python : ${{ steps.filter.outputs.python }} 
59+       charts : ${{ steps.filter.outputs.charts }} 
60+       template : ${{ steps.filter.outputs.template }} 
5961    steps :
6062      - name : Checkout repository 
6163        uses : actions/checkout@v3 
8284              - 'js/**' 
8385            python: 
8486              - 'python/**' 
87+             charts: 
88+               - 'chart_data_extractor/**' 
89+             template: 
90+               - 'template/**' 
8591
8692charts-tests :
8793    name : Charts tests 
@@ -93,34 +99,59 @@ jobs:
9399    name : Charts release 
94100    needs : [charts-tests] 
95101    if : needs.changes.outputs.charts == 'true' 
96-     defaults :
97-       run :
98-         working-directory : ./charts 
99102    runs-on : ubuntu-latest 
100103    steps :
101104      - name : Checkout Repo 
102105        uses : actions/checkout@v3 
103106
107+       - name : Install pnpm 
108+         uses : pnpm/action-setup@v3 
109+         id : pnpm-install 
110+         with :
111+           version : 9.5 
112+ 
113+       - name : Set up Python 
114+         uses : actions/setup-python@v4 
115+         with :
116+           python-version : ' 3.10' 
117+ 
118+       - name : Install and configure Poetry 
119+         uses : snok/install-poetry@v1 
120+         with :
121+           version : 1.5.1 
122+           virtualenvs-create : true 
123+           virtualenvs-in-project : true 
124+           installer-parallel : true 
125+ 
126+       - name : Configure pnpm 
127+         run : | 
128+           pnpm config set auto-install-peers true  
129+           pnpm config set exclude-links-from-lockfile true  
130+ 
131+ name : Install dependencies 
132+         run : pnpm install --frozen-lockfile 
133+ 
104134      - name : Create new versions 
105135        run : pnpm run version 
106136        env :
107137          GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }} 
108138
109139      - name : Release new versions 
110-         uses : changesets/action@v1 
111-         with :
112-           publish : pnpm run publish 
113-           createGithubReleases : true 
140+         run : | 
141+           poetry build 
142+           poetry config pypi-token.pypi ${PYPI_TOKEN} 
143+           poetry publish --skip-existing 
144+ working-directory :  ./chart_data_extractor 
114145        env :
115146          GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }} 
116-           NPM_TOKEN : ${{ secrets.NPM_TOKEN  }} 
147+           PYPI_TOKEN : ${{ secrets.CHARTS_PYPI_TOKEN  }} 
117148
118149
119150  build-docker-image :
120151    name : Build Docker Image 
121152    runs-on : ubuntu-latest 
122153    needs : [changes, charts-release] 
123-     if : !cancelled() &&  needs.changes.outputs.template == 'true' || needs.changes.outputs.charts == 'true'
154+     if : needs.changes.outputs.template == 'true' || needs.changes.outputs.charts == 'true' 
124155    steps :
125156      - name : Checkout repository 
126157        uses : actions/checkout@v3 
@@ -147,10 +178,10 @@ jobs:
147178            --tag ${{ secrets.DOCKERHUB_USERNAME }}/code-interpreter:latest . 
148179
149180build-template :
150-     name : Build Docker Image  
181+     name : Build E2B template  
151182    runs-on : ubuntu-latest 
152183    needs : [build-docker-image] 
153-     if : !cancelled() &&  needs.changes.outputs.template == 'true' || needs.changes.outputs.charts == 'true'
184+     if : needs.changes.outputs.template == 'true' || needs.changes.outputs.charts == 'true' 
154185    steps :
155186      - name : Checkout repository 
156187        uses : actions/checkout@v3 
@@ -168,20 +199,29 @@ jobs:
168199  python-tests :
169200    name : Python Tests 
170201    needs : [changes, build-template] 
171-     if : !cancelled() && needs.changes.outputs.python == 'true' || needs.changes.outputs.template == 'true' 
202+     if : always() &&  
203+       !contains(needs.*.result, 'failure') && 
204+       !contains(needs.*.result, 'cancelled') && 
205+       (needs.changes.outputs.python == 'true' || needs.changes.outputs.template == 'true') 
172206    uses : ./.github/workflows/python_tests.yml 
173207    secrets : inherit 
174208
175209  js-tests :
176210    name : JS Tests 
177-     needs : [changes] 
178-     if : !cancelled() && needs.changes.outputs.js == 'true' || needs.changes.outputs.template == 'true' 
211+     needs : [changes, build-template] 
212+     if : always() &&  
213+       !contains(needs.*.result, 'failure') && 
214+       !contains(needs.*.result, 'cancelled') && 
215+       (needs.changes.outputs.js == 'true' || needs.changes.outputs.template == 'true') 
179216    uses : ./.github/workflows/js_tests.yml 
180217    secrets : inherit 
181218
182219  release :
183220    needs : [python-tests, js-tests] 
184-     if : (!cancelled()) && !contains(needs.*.result, 'failure') && needs.is_release.outputs.release == 'true' 
221+     if : always() &&  
222+       !contains(needs.*.result, 'failure') && 
223+       !contains(needs.*.result, 'cancelled') && 
224+       (needs.changes.outputs.js == 'true' || needs.changes.outputs.python == 'true') 
185225    name : Release 
186226    runs-on : ubuntu-latest 
187227    steps :
0 commit comments