Skip to content

Add nucliadb_relations folders to pre-commit config (#1692) #72

Add nucliadb_relations folders to pre-commit config (#1692)

Add nucliadb_relations folders to pre-commit config (#1692) #72

Workflow file for this run

name: PyPI Releases
on:
push:
branches:
- main
jobs:
build_wheels:
name: Build wheels
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: 3.11
- name: Setup env
run: |
pip install wheel
pip install -U twine
- name: Set dependency versions in requirements
run: |
python bump.py --build=${{github.run_number}}
- uses: dorny/paths-filter@v2
id: component_changes
with:
filters: |
nucliadb_protos:
- 'nucliadb_protos/**'
nucliadb_utils:
- 'nucliadb_utils/**'
nucliadb_models:
- 'nucliadb_models/**'
nucliadb_sdk:
- 'nucliadb_sdk/**'
nucliadb_dataset:
- 'nucliadb_dataset/**'
nucliadb_telemetry:
- 'nucliadb_telemetry/**'
# Install all packages we are going to release
- name: Install all packages
run: |
pip install -e ./nucliadb_protos/python/
pip install -e ./nucliadb_telemetry/
pip install -e ./nucliadb_utils/
pip install -e ./nucliadb_models/
pip install -e ./nucliadb_sdk/
pip install -e ./nucliadb_dataset/
pip install -e ./nucliadb/
- name: Build wheels
run: pip wheel --no-deps -w dist ./nucliadb_protos/python/ ./nucliadb_utils/ ./nucliadb_models/ ./nucliadb_sdk/ ./nucliadb_telemetry ./nucliadb_dataset/ ./nucliadb/
# XXX wait for tests to run successfully in all dependencies before we actually release
- name: Wait for utils
uses: lewagon/[email protected]
if: steps.component_changes.outputs.nucliadb_utils == 'true'
with:
ref: main
check-name: NucliaDBUtilsTests (3.11)
repo-token: ${{ secrets.GITHUB_TOKEN }}
wait-interval: 10
- name: Wait for sdk tests
uses: lewagon/[email protected]
if: steps.component_changes.outputs.nucliadb_sdk == 'true'
with:
ref: main
check-name: NucliaDBSDKTests (3.11)
repo-token: ${{ secrets.GITHUB_TOKEN }}
wait-interval: 10
- name: Wait for dataset tests
uses: lewagon/[email protected]
if: steps.component_changes.outputs.nucliadb_dataset == 'true'
with:
ref: main
check-name: NucliaDBDatasetTests (3.11)
repo-token: ${{ secrets.GITHUB_TOKEN }}
wait-interval: 10
- name: Wait for telemetry tests
uses: lewagon/[email protected]
if: steps.component_changes.outputs.nucliadb_telemetry == 'true'
with:
ref: main
check-name: NucliaDBTelemetryTests (3.11)
repo-token: ${{ secrets.GITHUB_TOKEN }}
wait-interval: 10
- name: Wait for nucliadb tests
uses: lewagon/[email protected]
with:
ref: main
check-name: NucliaDBTests (3.11, pg)
repo-token: ${{ secrets.GITHUB_TOKEN }}
wait-interval: 10
- name: Upload to pypi
run: twine upload dist/*
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
# failing, disable for now
# - name: Run Nuclia SDK tests
# uses: peter-evans/repository-dispatch@v2
# with:
# token: ${{ secrets.GH_CICD_PUBLIC }}
# repository: nuclia/nuclia.py
# event-type: test-stage
# client-payload: '{"component": "nucliadb", "commit": "${{ github.sha }}", "user": "${{ github.actor }}"}'
push-docker:
name: Build and push nucliadb docker image
runs-on: ubuntu-latest
needs: build_wheels
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
# We need to setup buildx to be able to cache with gha
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Get release version
id: version_step
run: |-
python bump.py --build=${{github.run_number}}
VERSION=`cat VERSION`
HASH=`git rev-parse --short HEAD`
echo "version_number=$VERSION" >> $GITHUB_OUTPUT
echo "hash=$HASH" >> $GITHUB_OUTPUT
- name: Build and push
uses: docker/build-push-action@v4
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: |
nuclia/nucliadb:latest
nuclia/nucliadb:${{ steps.version_step.outputs.version_number }}
nuclia/nucliadb:${{ steps.version_step.outputs.hash }}
cache-from: type=gha
cache-to: type=gha,mode=min