-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
LG-77 Update build system and remove the Docker container
- Docker container is removed, because due to the simpler UPB protobuf backend, there is no need to build and distribute the legacy CPP based protobuf backend. - Stop using setup.py and use setuptools as a backend. Protobuf requirement is specified in setup.py directly for simpler builds. - Update the latest python version for the github workflow to 3.13. - Add instructions for local installation to the readme. - Make non-release versions somewhat PEP404 compliant in the github workflow.
- Loading branch information
1 parent
096950a
commit ee4e131
Showing
6 changed files
with
49 additions
and
197 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions | ||
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | ||
|
||
name: Python package and Docker image | ||
name: Python package | ||
|
||
on: | ||
push: | ||
|
@@ -14,50 +14,47 @@ on: | |
workflow_dispatch: | ||
inputs: | ||
version_name: | ||
description: 'Version used on testPypi and dockerHub' | ||
description: 'Version used for manual triggering' | ||
required: true | ||
|
||
env: | ||
IMAGE_NAME: 'wirepas/wmm_alpine_cpp' | ||
|
||
jobs: | ||
build: | ||
|
||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
python-version: ['3.9', '3.10', '3.11'] | ||
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] | ||
include: | ||
# Mark below python version as the latest one | ||
- python-version: '3.13' | ||
python-latest: true | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: true | ||
|
||
- name: Set proto path | ||
run: echo "PROTO_FOLDER=backend-apis/gateway_to_backend/protocol_buffers_files" >> $GITHUB_ENV | ||
|
||
- name: Install Protoc | ||
uses: arduino/setup-protoc@v1.1.2 | ||
uses: arduino/setup-protoc@v3 | ||
with: | ||
version: '3.20.3' | ||
version: '29.x' | ||
repo-token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Generate proto files | ||
run: | | ||
protoc -I ${{ env.PROTO_FOLDER }} --python_out=./wirepas_mesh_messaging/proto ${{ env.PROTO_FOLDER }}/*.proto | ||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v4 | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
|
||
- name: Install dependencies | ||
run: | | ||
# Use sepcific version of pip as temporary fix for deprecation of setup.py install | ||
# being an error in 23.1 | ||
python -m pip install pip==23.0 | ||
python -m pip install flake8 pytest setuptools wheel | ||
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi | ||
python -m pip install flake8 pytest build | ||
- name: Lint with flake8 | ||
run: | | ||
|
@@ -81,15 +78,15 @@ jobs: | |
|
||
- name: Set Version for master push | ||
if: ${{ github.event_name == 'push' }} | ||
run: echo "VERSION=${{ steps.short-sha.outputs.sha }}" >> $GITHUB_ENV | ||
run: echo "VERSION=0+${{ steps.short-sha.outputs.sha }}" >> $GITHUB_ENV | ||
|
||
- name: Set Version for release | ||
if: ${{ github.event_name == 'release' }} | ||
run: echo "VERSION=${{ github.event.release.tag_name }}" >> $GITHUB_ENV | ||
|
||
- name: Set Version for PR | ||
if: ${{ github.event_name == 'pull_request' }} | ||
run: echo "VERSION=PR_${{ github.event.pull_request.number }}" >> $GITHUB_ENV | ||
run: echo "VERSION=0+PR_${{ github.event.pull_request.number }}" >> $GITHUB_ENV | ||
|
||
- name: Set Version for manual triggering | ||
if: ${{ github.event_name == 'workflow_dispatch' }} | ||
|
@@ -100,20 +97,20 @@ jobs: | |
sed -i '/__version__ = /c\__version__ = "${{ env.VERSION }}"' wirepas_mesh_messaging/__about__.py | ||
- name: Build the wheel | ||
run: python setup.py sdist bdist_wheel | ||
run: python -m build . | ||
|
||
- name: Save produced wheel name and path | ||
run: echo "WHEEL_FILE=$(ls dist/*-py3-none-any.whl)" >> $GITHUB_ENV | ||
|
||
- name: Store artifacts only for last matrix version | ||
if: ${{ matrix.python-version == '3.11' }} | ||
if: ${{ matrix.python-latest }} | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
path: ${{ env.WHEEL_FILE }} | ||
|
||
# Produced wheels is same independently of python version | ||
- name: Upload Wheel for releases only for last matrix version | ||
if: ${{ github.event_name == 'release' && matrix.python-version == '3.11' }} | ||
if: ${{ github.event_name == 'release' && matrix.python-latest }} | ||
uses: actions/upload-release-asset@v1 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
@@ -123,81 +120,10 @@ jobs: | |
asset_content_type: application/zip | ||
asset_name: wirepas_mesh_messaging-${{ env.VERSION }}-py3-none-any.whl | ||
|
||
- name: Publish package to TestPyPI for push to master | ||
if: ${{ github.event_name == 'workflow_dispatch' && matrix.python-version == '3.11' }} | ||
uses: pypa/[email protected] | ||
with: | ||
user: __token__ | ||
password: ${{ secrets.PYPI_TEST_PWD }} | ||
repository_url: https://test.pypi.org/legacy/ | ||
|
||
- name: Publish package to PyPI for release | ||
if: ${{ github.event_name == 'release' && matrix.python-version == '3.11' }} | ||
if: ${{ github.event_name == 'release' && matrix.python-latest }} | ||
uses: pypa/[email protected] | ||
with: | ||
user: __token__ | ||
password: ${{ secrets.PYPI_PWD }} | ||
|
||
docker: | ||
runs-on: ubuntu-latest | ||
needs: build | ||
steps: | ||
- name: checkout code | ||
uses: actions/checkout@v3 | ||
|
||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v2 | ||
|
||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v2 | ||
|
||
- name: Retrieve wheel to be installed image | ||
uses: actions/download-artifact@v4 | ||
|
||
- name: Set tag for push | ||
if: github.event_name == 'push' | ||
run: | | ||
echo "TAG1=$IMAGE_NAME:edge" >> $GITHUB_ENV | ||
echo "PUSH=true" >> $GITHUB_ENV | ||
- name: Set tag for manually triggered | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "TAG1=$IMAGE_NAME:${{ github.event.inputs.version_name }}" >> $GITHUB_ENV | ||
echo "PUSH=true" >> $GITHUB_ENV | ||
- name: Set tag for release version | ||
if: github.event_name == 'release' | ||
run: | | ||
echo "TAG1=$IMAGE_NAME:${{ github.event.release.tag_name }}" >> $GITHUB_ENV | ||
echo "PUSH=true" >> $GITHUB_ENV | ||
- name: Set additionnal latest tag also for official release | ||
if: github.event_name == 'release' && !contains(github.event.release.tag_name, 'rc') | ||
run: | | ||
echo "TAG2=$IMAGE_NAME:latest" >> $GITHUB_ENV | ||
echo "PUSH=true" >> $GITHUB_ENV | ||
- name: Do not push on docker hub for pull_request | ||
if: github.event_name == 'pull_request' | ||
run: | | ||
echo "PUSH=false" >> $GITHUB_ENV | ||
- name: Login to docker hub | ||
uses: docker/login-action@v2 | ||
with: | ||
username: ${{ secrets.DOCKER_USERNAME }} | ||
password: ${{ secrets.DOCKER_PASSWORD }} | ||
|
||
- name: Build and push | ||
uses: docker/build-push-action@v3 | ||
with: | ||
context: . | ||
file: docker/Dockerfile | ||
platforms: linux/amd64, linux/arm64, linux/arm/v7, linux/arm/v6 | ||
push: ${{ env.PUSH }} | ||
build-args: WIREPAS_MESH_MESSAGING_BUIL_SHA1=${{ github.sha }} | ||
tags: | | ||
${{ env.TAG1 }} | ||
${{ env.TAG2 }} | ||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
[build-system] | ||
requires = ["setuptools>=61.0", "protobuf_distutils"] | ||
build-backend = "setuptools.build_meta" |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters