blendercam/.github/workflows/build_and_test.yaml

70 wiersze
2.4 KiB
YAML

name: Run tests on push / PR
on:
push:
pull_request:
jobs:
build_and_test:
strategy:
matrix:
os: ['ubuntu-latest']
blender_version: ['3.6.7','4.0.2']
runs-on: ${{matrix.os}}
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Cache blender
id: cache-blender
uses: actions/cache/restore@v3
with:
path: blender
key: ${{ matrix.os }}-${{ matrix.blender_version}}-blender
- name: Download blender
id: download
if: steps.cache-blender.outputs.cache-hit != 'true'
shell: bash
run: |
declare -A os_suffixes
os_suffixes["ubuntu-latest"]="linux-x64.tar.xz"
os_suffixes["macos-latest"]="macos-x64.dmg"
os_suffixes["windows-latest"]="windows-x64.zip"
export OS_SUFFIX=${os_suffixes["${{matrix.os}}"]}
IFS='.' read -ra BLENDER_SPLIT <<< "${{matrix.blender_version}}"
export BLENDER_MAJOR=${BLENDER_SPLIT[0]}.${BLENDER_SPLIT[1]}
export BLENDER_MINOR=${BLENDER_SPLIT[2]}
export BLENDER_ARCHIVE="blender-${BLENDER_MAJOR}.${BLENDER_MINOR}-${OS_SUFFIX}"
echo Major version: $BLENDER_MAJOR
echo Minor version: $BLENDER_MINOR
echo Archive name: $BLENDER_ARCHIVE
wget https://download.blender.org/release/Blender${BLENDER_MAJOR}/${BLENDER_ARCHIVE}
echo "BLENDER_ARCHIVE=${BLENDER_ARCHIVE}" >> "$GITHUB_OUTPUT"
- name: Save blender
uses: actions/cache/save@v3
with:
path: blender
key: ${{ matrix.os }}-${{ matrix.blender_version}}-blender
- name: Extract Action
uses: ihiroky/extract-action@v1
with:
file_path: ${{ steps.download.outputs.BLENDER_ARCHIVE }}
extract_dir: blender
- name: Make addon zip
uses: thedoctor0/zip-release@0.7.5
with:
type: 'zip'
filename: 'blendercam.zip'
directory: './scripts/addons'
- uses: actions/upload-artifact@v4
with:
name: blendercam
path: blendercam.zip
- name: Run tests
shell: bash
run: |
export BLENDER_BIN_PATH=${PWD}/blender/$(ls -AU blender | head -1)
export PATH=$PATH:${BLENDER_BIN_PATH}
export ADDON_PATH=${PWD}/scripts/addons/blendercam.zip
cd scripts/addons/cam/tests
python install_addon.py ${ADDON_PATH}
python test_suite.py