Skip to content
This repository has been archived by the owner on Jun 14, 2024. It is now read-only.

feat: migrate POST /api/users endpoint to POST /api/v1/users #614

feat: migrate POST /api/users endpoint to POST /api/v1/users

feat: migrate POST /api/users endpoint to POST /api/v1/users #614

Workflow file for this run

name: Build package
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
on:
workflow_dispatch:
release:
types:
- "published"
push:
branches:
- "main"
- "develop"
- "releases/**"
tags:
- "*"
pull_request:
branches:
- "main"
- "develop"
- "releases/**"
- "refactor/**"
- "feature/**"
- "feat/**"
- "fix/**"
- "tests/**"
types:
- opened
- reopened
- synchronize
- ready_for_review
jobs:
check_repo_files:
name: Check source changes
if: ${{ !github.event.pull_request.draft }}
uses: ./.github/workflows/check-repo-files.yml
deployable_check:
name: Check if must build & deploy from environment
runs-on: ubuntu-latest
needs: check_repo_files
env:
IS_DEPLOYABLE: ${{ secrets.AR_DOCKER_USERNAME != '' && needs.check_repo_files.outputs.buildChanges == 'true' }}
outputs:
isDeployable: ${{ steps.set_output.outputs.is_deployable }}
steps:
- name: set output
id: set_output
run: |
echo "is_deployable=$IS_DEPLOYABLE" >> $GITHUB_OUTPUT
run_unit_tests:
strategy:
matrix:
include:
- name: "ElasticSearch 8.8.2"
searchEngineDockerImage: docker.elastic.co/elasticsearch/elasticsearch:8.8.2
searchEngineDockerEnv: '{"discovery.type": "single-node", "xpack.security.enabled": "false"}'
coverageReport: coverage-elasticsearch-8.8.2
runsOn: ubuntu-latest
- name: "PostgreSQL 14"
searchEngineDockerImage: docker.elastic.co/elasticsearch/elasticsearch:8.8.2
searchEngineDockerEnv: '{"discovery.type": "single-node", "xpack.security.enabled": "false"}'
postgresDockerImage: postgres:14
coverageReport: coverage-elasticsearch-8.8.2-postgres-14
runsOn: ubuntu-latest
- name: "OpenSearch 2.4.1"
searchEngineDockerImage: opensearchproject/opensearch:2.4.1
searchEngineDockerEnv: '{"discovery.type": "single-node", "plugins.security.disabled": "true"}'
coverageReport: coverage-opensearch-2.4.1
runsOn: ubuntu-latest
name: Run unit tests (${{ matrix.name }})
uses: ./.github/workflows/run-python-tests.yml
needs: check_repo_files
if: needs.check_repo_files.outputs.pythonChanges == 'true'
with:
searchEngineDockerImage: ${{ matrix.searchEngineDockerImage }}
searchEngineDockerEnv: ${{ matrix.searchEngineDockerEnv }}
postgresDockerImage: ${{ matrix.postgresDockerImage }}
coverageReport: coverage
runsOn: ${{ matrix.runsOn }}
pytestArgs: tests/unit
secrets: inherit
run_unit_test_with_extra_engines:
strategy:
matrix:
include:
- searchEngineDockerImage: docker.elastic.co/elasticsearch/elasticsearch:8.8.0
searchEngineDockerEnv: '{"discovery.type": "single-node", "xpack.security.enabled": "false"}'
coverageReport: coverage-elasticsearch-8.8.0
runsOn: ubuntu-latest
- searchEngineDockerImage: docker.elastic.co/elasticsearch/elasticsearch:8.6.0
searchEngineDockerEnv: '{"discovery.type": "single-node", "xpack.security.enabled": "false"}'
coverageReport: coverage-elasticsearch-8.6.0
runsOn: ubuntu-latest
- searchEngineDockerImage: opensearchproject/opensearch:2.8.0
searchEngineDockerEnv: '{"discovery.type": "single-node", "plugins.security.disabled": "true"}'
coverageReport: coverage-opensearch-2.8.0
runsOn: ubuntu-latest
name: Run unit tests with extra engines
uses: ./.github/workflows/run-python-tests.yml
needs: check_repo_files
if: |
github.event_name == 'release' ||
needs.check_repo_files.outputs.pythonChanges == 'true' &&
startsWith(github.event.ref, 'refs/tags/v')
with:
searchEngineDockerImage: ${{ matrix.searchEngineDockerImage }}
searchEngineDockerEnv: ${{ matrix.searchEngineDockerEnv }}
coverageReport: coverage
runsOn: ${{ matrix.runsOn }}
pytestArgs: tests/unit
secrets: inherit
push_coverage:
name: Upload code coverage
runs-on: ubuntu-latest
needs:
- run_unit_tests
steps:
- name: Checkout Code 🛎
uses: actions/checkout@v3
- uses: actions/download-artifact@v3
- name: Copy all reports
run: find coverage-report*/ -name "*.xml" -exec mv '{}' . \;
- name: Display current files structure
run: ls -R
- name: Upload Coverage reports to Codecov 📦
uses: codecov/codecov-action@v2
build_python_package:
name: Build Argilla python package
uses: ./.github/workflows/build-python-package.yml
needs: deployable_check
if: needs.deployable_check.outputs.isDeployable == 'true'
secrets: inherit
build_server_docker_image:
name: Build Argilla server docker image
uses: ./.github/workflows/build-push-docker.yml
needs:
- build_python_package
- run_unit_tests
if: |
!cancelled() &&
needs.build_python_package.result == 'success' &&
!contains(needs.*.result, 'failure') &&
!contains(needs.*.result, 'cancelled')
with:
download-python-package: true
image-name: argilla/argilla-server
dockerfile: docker/server/Dockerfile
context: docker/server
readme: README.md
platforms: linux/amd64,linux/arm64
secrets: inherit
build_quickstart_docker_image:
name: Build Argilla quickstart docker image
uses: ./.github/workflows/build-push-docker.yml
needs: build_server_docker_image
if: |
!cancelled() &&
needs.build_server_docker_image.result == 'success'
with:
download-python-package: false
image-name: argilla/argilla-quickstart
dockerfile: docker/quickstart/Dockerfile
context: docker/quickstart
readme: docker/quickstart/README.md
platforms: linux/amd64,linux/arm64
build-args: |
ARGILLA_VERSION=${{ needs.build_server_docker_image.outputs.version }}
secrets: inherit
# This job will publish argilla-server python package into PyPI repository
publish_release:
name: Publish Release
runs-on: ubuntu-latest
if: ${{ github.event_name == 'release' }}
needs:
- build_quickstart_docker_image
permissions:
# This permission is needed for private repositories.
# contents: read
# IMPORTANT: this permission is mandatory for trusted publishing on PyPI
id-token: write
defaults:
run:
shell: bash -l {0}
steps:
- name: Checkout Code 🛎
uses: actions/checkout@v3
- name: Download python package
uses: actions/download-artifact@v2
with:
name: python-package
path: dist
- name: Setup PDM
uses: pdm-project/setup-pdm@v4
with:
cache: true
- name: Publish Package to PyPI test environment 🥪
run: pdm publish --no-build --repository testpypi
- name: Test Installing 🍿
run: pip install --index-url https://test.pypi.org/simple --no-deps argilla-server==${GITHUB_REF#refs/*/v}
- name: Publish Package to PyPI 🥩
run: pdm publish --no-build