Relase MaixPy for MaixCAM #5
Workflow file for this run
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
name: Relase MaixPy for MaixCAM | |
on: | |
release: | |
types: [published] | |
workflow_dispatch: | |
permissions: write-all | |
jobs: | |
build: | |
name: release and upload assets task | |
strategy: | |
matrix: | |
python-version: ["3.11"] # must use str, not int, or 3.10 will be recognized as 3.1 | |
os: ["ubuntu-latest"] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Build MaixPy | |
id: build_maixpy | |
run: | | |
echo "-- Check python version must python 3.11 --" | |
python3 -c 'import sys;print(sys.version);assert sys.version_info >= (3, 11);assert sys.version_info < (3, 12)' | |
python -c 'import sys;print(sys.version);assert sys.version_info >= (3, 11);assert sys.version_info < (3, 12)' | |
whereis python | |
whereis python3 | |
# export PATH=~/.local/bin/:$PATH | |
# pull sipeed/MaixCDK repo here first | |
pwd_path=$(pwd) | |
cd ~ | |
git clone https://github.com/sipeed/MaixCDK --depth=1 | |
export MAIXCDK_PATH=`pwd`/MaixCDK | |
cd $pwd_path | |
python -m pip install -U pip setuptools wheel twine | |
python -m pip install -r $MAIXCDK_PATH/requirements.txt | |
python -m pip install pybind11-stubgen | |
echo "--------------------------------" | |
echo "-- Build MaixPy for Linux now --" | |
echo "--------------------------------" | |
sudo apt update -y | |
sudo apt install -y libopencv-dev libopencv-contrib-dev libsdl2-dev cmake | |
cmake --version | |
python setup.py bdist_wheel linux | |
echo "--------------------------------" | |
echo "-- Test MaixPy basic for Linux now --" | |
echo "--------------------------------" | |
chmod +x ./run.sh && ./run.sh test/test_basic.py | |
mkdir -p artifact | |
cp dist/* artifact/ | |
release_name=`ls artifact|awk '{print $1}'` | |
release_path=artifact/$release_name | |
echo "release_linux_path=$release_path" >> $GITHUB_OUTPUT | |
echo "release_linux_name=$release_name" >> $GITHUB_OUTPUT | |
echo "----------------------------------" | |
echo "-- Build MaixPy for MaixCAM now --" | |
echo "----------------------------------" | |
python setup.py bdist_wheel maixcam | |
cp dist/* artifact/ | |
release_name=`ls dist|awk '{print $1}'` | |
release_path=dist/$release_name | |
echo "release_path=$release_path" >> $GITHUB_OUTPUT | |
echo "release_name=$release_name" >> $GITHUB_OUTPUT | |
- name: Build doc | |
id: build_doc | |
run: | | |
pip3 install teedoc | |
cd docs | |
echo "== install plugins ==" | |
teedoc install | |
echo "== start build ==" | |
teedoc build | |
echo "== build complete ==" | |
remote_addr=`git remote get-url --push origin` | |
remote_addr=`echo $remote_addr| awk -F'://' '{print $2}'` | |
user_name=`git log -1 --pretty=format:'%an'` | |
user_email=`git log -1 --pretty=format:'%ae'` | |
echo "== checkout gh-pages branch ==" | |
doc_dir=maixpy_${{ github.ref_name }}_doc | |
mv out $doc_dir | |
zip ${doc_dir}.zip -r $doc_dir | |
cd .. | |
release_name=${doc_dir}.zip | |
release_path=docs/$release_name | |
echo "release_doc_path=$release_path" >> $GITHUB_OUTPUT | |
echo "release_doc_name=$release_name" >> $GITHUB_OUTPUT | |
- name: Upload MaixPy Doc to release assets | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
file: ${{ steps.build_doc.outputs.release_path }} | |
asset_name: ${{ steps.build_doc.outputs.release_name }} | |
tag: ${{ github.ref }} | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Upload MaixPy MaixCAM to release assets | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
file: ${{ steps.build_maixpy.outputs.release_path }} | |
asset_name: ${{ steps.build_maixpy.outputs.release_name }} | |
tag: ${{ github.ref }} | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Upload MaixPy Linux to release assets | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
file: ${{ steps.build_maixpy.outputs.release_linux_path }} | |
asset_name: ${{ steps.build_maixpy.outputs.release_linux_name }} | |
tag: ${{ github.ref }} | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Publish MaixPy to pypi.org | |
run: | | |
echo "[pypi]" > ~/.pypirc | |
echo " username = __token__" >> ~/.pypirc | |
echo " password = ${{ secrets.PYPI_TOKEN }}" >> ~/.pypirc | |
twine upload artifact/*.whl | |