-
Notifications
You must be signed in to change notification settings - Fork 390
132 lines (116 loc) · 3.56 KB
/
argilla.yml
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
132
name: Build and publish the `argilla` sdk python package
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
workflow_dispatch:
push:
branches:
- main
- develop
- releases/**
pull_request:
paths:
- "argilla/**"
jobs:
build:
services:
argilla-quickstart:
image: argilla/argilla-quickstart:main
ports:
- 6900:6900
env:
ANNOTATOR_USERNAME: annotator
OWNER_USERNAME: argilla
OWNER_API_KEY: argilla.apikey
ADMIN_USERNAME: admin
ADMIN_API_KEY: admin.apikey
runs-on: ubuntu-latest
defaults:
run:
working-directory: argilla
strategy:
fail-fast: false
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v4
- name: Setup PDM
uses: pdm-project/setup-pdm@v4
with:
python-version: ${{ matrix.python-version }}
cache: true
cache-dependency-path: |
argilla/pdm.lock
- name: Install dependencies
run: |
pdm install
- name: Wait for argilla-quickstart to start
run: |
while ! curl -XGET http://localhost:6900/api/_status; do sleep 5; done
- name: Run unit tests
run: |
pdm run test tests/unit
- name: Run integration tests
run: |
pdm run test tests/integration
- name: Build package
run: |
pdm build
- name: Upload artifact
uses: actions/upload-artifact@v4
# Upload the package to be used in the next jobs only once
if: ${{ matrix.python-version == '3.8' }}
with:
name: argilla
path: argilla/dist
# This job will publish argilla package into PyPI repository
publish_release:
name: Publish Release
runs-on: ubuntu-latest
if: ${{ github.ref == 'refs/heads/main' || github.event_name == 'workflow_dispatch' }}
permissions:
# This permission is needed for private repositories.
# contents: read
# IMPORTANT: this permission is mandatory for trusted publishing on PyPI
id-token: write
# This permission is needed for creating tags
contents: write
needs:
- build
defaults:
run:
shell: bash -l {0}
working-directory: argilla
steps:
- name: Checkout Code 🛎
uses: actions/checkout@v4
- name: Download python package
uses: actions/download-artifact@v4
with:
name: argilla
path: argilla/dist
- name: Setup PDM
uses: pdm-project/setup-pdm@v4
with:
cache: true
python-version-file: argilla/pyproject.toml
cache-dependency-path: |
argilla/pdm.lock
- name: Read package info
run: |
PACKAGE_VERSION=$(pdm show --version)
PACKAGE_NAME=$(pdm show --name)
echo "PACKAGE_VERSION=$PACKAGE_VERSION" >> $GITHUB_ENV
echo "PACKAGE_NAME=$PACKAGE_NAME" >> $GITHUB_ENV
echo "$PACKAGE_NAME==$PACKAGE_VERSION"
- name: Publish Package to PyPI test environment 🥪
run: pdm publish --no-build --repository testpypi
continue-on-error: true
- name: Test Installing 🍿
continue-on-error: true
run: |
pip3 install --index-url https://test.pypi.org/simple --no-deps $PACKAGE_NAME==$PACKAGE_VERSION
- name: Publish Package to PyPI 🥩
if: github.ref == 'refs/heads/main'
run: pdm publish --no-build