WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Commit 0c01157

Browse files
committed
add publish-anaconda-org step to publish conda packages and optional copy-to-main-label
1 parent 4c308ac commit 0c01157

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

.github/workflows/upload_packages.yml

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@ on:
77
description: 'Git tag to download artifacts from (e.g., v0.45.0)'
88
required: true
99
type: string
10+
anaconda_label:
11+
description: 'Anaconda.org label (dev, main, etc.)'
12+
required: false
13+
type: string
14+
default: 'dev'
15+
copy_to_main:
16+
description: 'Copy packages to main label after upload'
17+
required: false
18+
type: boolean
19+
default: false
1020
push:
1121
branches:
1222
- gha/upload_packages_workflow
@@ -156,3 +166,62 @@ jobs:
156166
repository-url: https://test.pypi.org/legacy/
157167
verbose: true
158168

169+
publish-anaconda-org:
170+
name: Publish to Anaconda.org
171+
needs: download-artifacts
172+
runs-on: ubuntu-latest
173+
env:
174+
ANACONDA_USER: numba
175+
ANACONDA_LABEL: ${{ inputs.anaconda_label || 'dev' }}
176+
defaults:
177+
run:
178+
shell: bash -elx {0}
179+
180+
steps:
181+
- name: Setup Miniconda
182+
uses: conda-incubator/setup-miniconda@835234971496cad1653abb28a638a281cf32541f # v3.2.0
183+
with:
184+
python-version: '3.13'
185+
auto-update-conda: true
186+
auto-activate-base: true
187+
188+
- name: Install anaconda-client
189+
run: conda install -c anaconda anaconda-client
190+
191+
- name: Download conda packages artifact
192+
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
193+
with:
194+
name: conda-packages
195+
path: conda_packages
196+
197+
- name: List conda packages to publish
198+
run: |
199+
echo "=== Conda packages to publish ==="
200+
find conda_packages -type f -name "*.conda" -print | sort
201+
echo ""
202+
echo "=== Total packages ==="
203+
find conda_packages -type f -name "*.conda" | wc -l
204+
echo ""
205+
206+
- name: Publish conda packages to Anaconda.org
207+
env:
208+
ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
209+
run: |
210+
echo "Publishing to: ${{ env.ANACONDA_USER }}/label/${{ env.ANACONDA_LABEL }}"
211+
find conda_packages -name "*.conda" -type f | while read -r pkg; do
212+
echo "Uploading: $pkg"
213+
anaconda -t "$ANACONDA_API_TOKEN" upload --force -u ${{ env.ANACONDA_USER }} -l ${{ env.ANACONDA_LABEL }} "$pkg"
214+
done
215+
216+
- name: Copy packages to main label
217+
if: inputs.copy_conda_to_main
218+
env:
219+
ANACONDA_API_TOKEN: ${{ secrets.ANACONDA_API_TOKEN }}
220+
run: |
221+
echo "Copying packages from ${{ env.ANACONDA_LABEL }} to main"
222+
find conda_packages -name "*.conda" -type f | while read -r pkg; do
223+
PKG_NAME=$(basename "$pkg" .conda)
224+
echo "Copying: $PKG_NAME"
225+
anaconda -t "$ANACONDA_API_TOKEN" copy ${{ env.ANACONDA_USER }}/$PKG_NAME --from-label ${{ env.ANACONDA_LABEL }} --to-label main
226+
done
227+

0 commit comments

Comments
 (0)