diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000000..a06b563405 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,75 @@ +name: Continuous Integration +on: [push, pull_request] + +jobs: + makepanda: + if: "!contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, '[ci skip]')" + strategy: + matrix: + os: [ubuntu-16.04, windows-2016, macOS-latest] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v1 + - name: Install dependencies (Ubuntu) + if: matrix.os == 'ubuntu-16.04' + run: | + sudo apt-get update + sudo apt-get install build-essential bison flex libfreetype6-dev libgl1-mesa-dev libjpeg-dev libode-dev libopenal-dev libpng-dev libssl-dev libvorbis-dev libx11-dev libxcursor-dev libxrandr-dev nvidia-cg-toolkit zlib1g-dev + - name: Get thirdparty packages (Windows) + if: runner.os == 'Windows' + shell: powershell + run: | + $wc = New-Object System.Net.WebClient + $wc.DownloadFile("https://www.panda3d.org/download/panda3d-1.10.9/panda3d-1.10.9-tools-win64.zip", "thirdparty-tools.zip") + Expand-Archive -Path thirdparty-tools.zip + Move-Item -Path thirdparty-tools/panda3d-1.10.9/thirdparty -Destination . + - name: Get thirdparty packages (macOS) + if: runner.os == 'macOS' + run: | + curl -O https://www.panda3d.org/download/panda3d-1.10.9/panda3d-1.10.9-tools-mac.tar.gz + tar -xf panda3d-1.10.9-tools-mac.tar.gz + mv panda3d-1.10.9/thirdparty thirdparty + rmdir panda3d-1.10.9 + (cd thirdparty/darwin-libs-a && rm -rf rocket) + - name: Set up Python 3.9 + uses: actions/setup-python@v1 + with: + python-version: 3.9 + - name: Build Python 3.9 + shell: bash + run: | + python makepanda/makepanda.py --git-commit=${{github.sha}} --outputdir=built --everything --no-eigen --python-incdir="$pythonLocation/include" --python-libdir="$pythonLocation/lib" --verbose --threads=4 + - name: Test Python 3.9 + shell: bash + run: | + python -m pip install pytest + PYTHONPATH=built LD_LIBRARY_PATH=built/lib DYLD_LIBRARY_PATH=built/lib python -m pytest + - name: Set up Python 3.8 + uses: actions/setup-python@v1 + with: + python-version: 3.8 + - name: Build Python 3.8 + shell: bash + run: | + python makepanda/makepanda.py --git-commit=${{github.sha}} --outputdir=built --everything --no-eigen --python-incdir="$pythonLocation/include" --python-libdir="$pythonLocation/lib" --verbose --threads=4 + - name: Test Python 3.8 + shell: bash + run: | + python -m pip install pytest + PYTHONPATH=built LD_LIBRARY_PATH=built/lib DYLD_LIBRARY_PATH=built/lib python -m pytest + - name: Set up Python 3.7 + uses: actions/setup-python@v1 + with: + python-version: 3.7 + - name: Build Python 3.7 + shell: bash + run: | + python makepanda/makepanda.py --git-commit=${{github.sha}} --outputdir=built --everything --no-eigen --python-incdir="$pythonLocation/include" --python-libdir="$pythonLocation/lib" --verbose --threads=4 + - name: Test Python 3.7 + shell: bash + run: | + python -m pip install pytest + PYTHONPATH=built LD_LIBRARY_PATH=built/lib DYLD_LIBRARY_PATH=built/lib python -m pytest + - name: Make installer + run: | + python makepanda/makepackage.py --verbose --lzma diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 871b3e26c7..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,65 +0,0 @@ -language: cpp -sudo: false -branches: - only: - - release/1.10.x - - release/1.9.x -matrix: - include: - - compiler: clang - env: PYTHONV=python3 FLAGS=--installer - - compiler: clang - env: PYTHONV=python2.7 FLAGS=--override=STDFLOAT_DOUBLE=1 - - compiler: gcc - env: PYTHONV=python2.7 FLAGS=--optimize=4 - before_install: - - export CC=gcc-4.7 - - export CXX=g++-4.7 - - compiler: clang - env: PYTHONV=python3 FLAGS=--no-python SKIP_TESTS=1 -addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - gcc-4.7 - - g++-4.7 - - bison - - flex - - libfreetype6-dev - - libgl1-mesa-dev - - libjpeg-dev - - libode-dev - - libopenal-dev - - libpng-dev - - libssl-dev - - libvorbis-dev - - libx11-dev - - libxcursor-dev - - libxrandr-dev - - nvidia-cg-toolkit - - python-dev - - python3-dev - - python-virtualenv - - zlib1g-dev - - fakeroot -install: - - virtualenv --python=$PYTHONV venv && source venv/bin/activate - - $PYTHONV -m pip install pytest -script: - - $PYTHONV makepanda/makepanda.py --everything --git-commit $TRAVIS_COMMIT $FLAGS --threads 4 - - test -n "$SKIP_TESTS" || LD_LIBRARY_PATH=built/lib PYTHONPATH=built $PYTHONV makepanda/test_imports.py - - test -n "$SKIP_TESTS" || LD_LIBRARY_PATH=built/lib PYTHONPATH=built $PYTHONV -m pytest -v tests -notifications: - irc: - channels: - - secure: "jfwHT9RHAVOGRGTMY8TpYKJI6rq8nFoIj41Y0soZdJQNWtSSFEK9AyzZeMY+2dHga7cR/X+/0NWZ2ehhedTnd9FvlzOnMWWC3K0I/b3XWbEdVEqIZnggFkKGqs82Gy3omguRC63yWupeJCcSCckIhoWbLzWy6xV8lF5WC80iXi8=" - on_success: change - on_failure: always - use_notice: true - skip_join: false - webhooks: - urls: - - https://www.panda3d.org/webhooks/travis-ci.php - on_success: change - on_failure: always