-
Notifications
You must be signed in to change notification settings - Fork 8
131 lines (113 loc) · 4.22 KB
/
build-and-release.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
name: Build and Release
on:
push:
branches:
- master
tags:
- 'v[0-9]+.[0-9]+.[0-9]+*'
env:
SCM_LOCAL_SCHEME: no-local-version
ANACONDA_USER: labscript-suite
jobs:
build:
name: Build
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- { os: ubuntu-latest, python: '3.13', arch: x64 }
- { os: ubuntu-latest, python: '3.12', arch: x64 }
- { os: ubuntu-latest, python: '3.11', arch: x64 }
- { os: ubuntu-latest, python: '3.10', arch: x64 }
- { os: ubuntu-latest, python: '3.9', arch: x64 }
- { os: ubuntu-latest, python: '3.8', arch: x64 }
- { os: macos-13, python: '3.13', arch: x64 }
- { os: macos-13, python: '3.12', arch: x64 }
- { os: macos-13, python: '3.11', arch: x64 }
- { os: macos-13, python: '3.10', arch: x64 }
- { os: macos-13, python: '3.9', arch: x64 }
- { os: macos-13, python: '3.8', arch: x64 }
- { os: macos-latest, python: '3.13', arch: arm64 }
- { os: macos-latest, python: '3.12', arch: arm64 }
- { os: macos-latest, python: '3.11', arch: arm64 }
- { os: macos-latest, python: '3.10', arch: arm64 }
- { os: macos-latest, python: '3.9', arch: arm64 }
- { os: windows-latest, python: '3.13', arch: x64 }
- { os: windows-latest, python: '3.12', arch: x64 }
- { os: windows-latest, python: '3.11', arch: x64 }
- { os: windows-latest, python: '3.10', arch: x64 }
- { os: windows-latest, python: '3.9', arch: x64 }
- { os: windows-latest, python: '3.8', arch: x64 }
if: github.repository == 'chrisjbillington/setuptools-conda'
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Ignore Tags
if: github.event.ref_type == 'push' && contains(github.ref, '/tags')
run: git tag -d $(git tag --points-at HEAD)
- name: Install Miniconda
uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
architecture: ${{ matrix.arch }}
miniforge-version: "latest"
conda-remove-defaults: true
auto-activate-base: true
activate-environment: ""
- name: Conda package (Unix)
if: runner.os != 'Windows'
shell: bash -l {0}
run: python -m setuptools_conda --pythons=${{ matrix.python }} build .
- name: Conda Package (Windows)
if: runner.os == 'Windows'
shell: cmd /C CALL {0}
run: python -m setuptools_conda --pythons=${{ matrix.python }} build .
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: conda_packages-${{ matrix.os }}-py${{ matrix.python }}-${{ matrix.arch }}
path: ./conda_packages
release:
if: github.event_name != 'pull_request'
name: Release
runs-on: ubuntu-latest
needs: build
steps:
- name: Download Artifact
uses: actions/download-artifact@v4
with:
name: conda_packages
path: ./conda_packages
merge-multiple: true
- name: Install Miniconda
uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
miniforge-version: "latest"
conda-remove-defaults: true
auto-activate-base: true
activate-environment: ""
- name: Install Anaconda cloud client
shell: bash -l {0}
run: conda install anaconda-client
- name: Publish to Anaconda test label
if: contains(github.ref, '/tags')
shell: bash -l {0}
run: |
anaconda \
--token ${{ secrets.ANACONDA_API_TOKEN }} \
upload \
--user $ANACONDA_USER \
--label test \
conda_packages/*/*
- name: Publish to Anaconda main label
shell: bash -l {0}
if: contains(github.ref, '/tags')
run: |
anaconda \
--token ${{ secrets.ANACONDA_API_TOKEN }} \
upload \
--user $ANACONDA_USER \
conda_packages/*/*