Bump jinja2 from 2.11.3 to 3.1.3 #224
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: CI build | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
# Global Settings | |
env: | |
PYTHON_VERSION: "3.7" | |
GODOT_BINARY_VERSION: "3.2.3" | |
jobs: | |
static-checks: | |
name: 'π Static checks' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@f1d3225b5376a0791fdee5a0e8eac5289355e43a # pin@v2 | |
with: | |
submodules: true | |
- name: Set up Python | |
uses: actions/setup-python@0291cefc54fa79cd1986aee8fa5ecb89ad4defea # pin@v2 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Bootstrap | |
run: | | |
set -eux | |
python --version | |
pip install pre-commit | |
- name: Pre-commit hooks check | |
run: | | |
pre-commit run --all-files --show-diff-on-failure | |
################################################################################# | |
linux-build: | |
name: 'π§ Linux build' | |
runs-on: ubuntu-latest | |
env: | |
CC: clang | |
PLATFORM: 'x11-64' | |
steps: | |
- name: 'Checkout' | |
uses: actions/checkout@f1d3225b5376a0791fdee5a0e8eac5289355e43a # pin@v2 | |
with: | |
submodules: true | |
- name: 'Set up Python' | |
uses: actions/setup-python@0291cefc54fa79cd1986aee8fa5ecb89ad4defea # pin@v2 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: 'Setup venv' | |
run: | | |
set -eux | |
${{ env.CC }} --version | |
python --version | |
pip install -U pip | |
pip install -r requirements.txt | |
# Configuration for scons | |
echo 'godot_binary = "${{ env.GODOT_BINARY_VERSION }}"' >> custom.py | |
echo 'platform = "${{ env.PLATFORM }}"' >> custom.py | |
echo 'CC = "${{ env.CC }}"' >> custom.py | |
- name: 'Build project' | |
run: | | |
set -eux | |
scons build -j2 | |
- name: 'Start xvfb' | |
run: | | |
/usr/bin/Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & | |
echo ">>> Started xvfb" | |
- name: 'Run tests' | |
run: | | |
set -eux | |
scons tests headless=true | |
env: | |
DISPLAY: ':99.0' | |
- name: 'Generate artifact archive' | |
run: | | |
set -eux | |
scons release | |
- name: 'Export release artifact' | |
uses: actions/upload-artifact@11830c9f4d30053679cb8904e3b3ce1b8c00bf40 # pin@v2 | |
with: | |
name: ${{ env.PLATFORM }}-release | |
path: 'build/godot-python-*.tar.bz2' | |
################################################################################# | |
windows-build: | |
name: 'π Windows build' | |
runs-on: windows-latest | |
strategy: | |
matrix: | |
include: | |
- PLATFORM: 'windows-64' | |
PYTHON_ARCH: 'x64' | |
VS_ARCH: 'amd64' | |
- PLATFORM: 'windows-32' | |
PYTHON_ARCH: 'x86' | |
VS_ARCH: 'x86' | |
steps: | |
- name: 'Checkout' | |
uses: actions/checkout@f1d3225b5376a0791fdee5a0e8eac5289355e43a # pin@v2 | |
with: | |
submodules: true | |
- name: 'Set up Python' | |
uses: actions/setup-python@0291cefc54fa79cd1986aee8fa5ecb89ad4defea # pin@v2 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
architecture: ${{ matrix.PYTHON_ARCH }} | |
- name: 'Setup venv' | |
shell: bash | |
run: | | |
set -eux | |
python --version | |
python -m pip install --user -U pip | |
python -m pip install --user -r requirements.txt | |
# Configuration for scons | |
echo 'godot_binary = "${{ env.GODOT_BINARY_VERSION }}"' >> custom.py | |
echo 'platform = "${{ matrix.PLATFORM }}"' >> custom.py | |
echo 'MSVC_USE_SCRIPT = True' >> custom.py | |
echo 'TARGET_ARCH = "${{ matrix.VS_ARCH }}"' >> custom.py | |
echo 'CC = "cl.exe"' >> custom.py | |
- name: 'Build project' | |
shell: bash | |
run: | | |
set -eux | |
scons build -j2 | |
- name: 'Install Mesa3D OpenGL' | |
shell: bash | |
run: | | |
set -eux | |
# Azure pipelines doesn't provide a GPU with an OpenGL driver, | |
# hence we use Mesa3D as software OpenGL driver | |
pushd build/${{ matrix.PLATFORM }}/platforms/ | |
if [ "${{ matrix.PLATFORM }}" = "windows-64" ] | |
then | |
curl https://downloads.fdossena.com/Projects/Mesa3D/Builds/MesaForWindows-x64-20.0.7.7z -o mesa.7z | |
else | |
curl https://downloads.fdossena.com/Projects/Mesa3D/Builds/MesaForWindows-20.0.7.7z -o mesa.7z | |
fi | |
# opengl32.dll must be extracted in the same directory than Godot binary | |
7z.exe x mesa.7z | |
ls -lh opengl32.dll # Sanity check | |
popd | |
- name: 'Run tests' | |
shell: bash | |
run: | | |
set -eux | |
scons tests | |
- name: 'Generate artifact archive' | |
shell: bash | |
run: | | |
scons release | |
- name: 'Export release artifact' | |
uses: actions/upload-artifact@11830c9f4d30053679cb8904e3b3ce1b8c00bf40 # pin@v2 | |
with: | |
name: ${{ matrix.PLATFORM }}-release | |
path: 'build/godot-python-*.zip' | |
################################################################################# | |
macos-build: | |
name: 'π macOS build' | |
runs-on: macos-latest | |
env: | |
CC: clang | |
PLATFORM: 'osx-64' | |
steps: | |
- name: 'Checkout' | |
uses: actions/checkout@f1d3225b5376a0791fdee5a0e8eac5289355e43a # pin@v2 | |
with: | |
submodules: true | |
- name: 'Set up Python' | |
uses: actions/setup-python@0291cefc54fa79cd1986aee8fa5ecb89ad4defea # pin@v2 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: 'Setup venv' | |
run: | | |
set -eux | |
${{ env.CC }} --version | |
python --version | |
brew update | |
brew install zlib openssl | |
brew install --cask xquartz | |
pip install -U pip | |
pip install -r requirements.txt | |
# Configuration for scons | |
echo 'godot_binary = "${{ env.GODOT_BINARY_VERSION }}"' >> custom.py | |
echo 'platform = "${{ env.PLATFORM }}"' >> custom.py | |
echo 'CC = "${{ env.CC }}"' >> custom.py | |
- name: 'Build project' | |
run: | | |
set -eux | |
scons build -j2 | |
- name: 'Run tests' | |
run: | | |
set -eux | |
scons tests | |
- name: 'Generate artifact archive' | |
run: | | |
set -eux | |
scons release | |
- name: 'Export release artifact' | |
uses: actions/upload-artifact@11830c9f4d30053679cb8904e3b3ce1b8c00bf40 # pin@v2 | |
with: | |
name: ${{ env.PLATFORM }}-release | |
path: 'build/godot-python-*.tar.bz2' | |
################################################################################# | |
publish-release: | |
name: 'Publish ${{ matrix.PLATFORM }} release' | |
if: startsWith(github.ref, 'refs/tags/v') | |
runs-on: ubuntu-latest | |
needs: | |
- linux-build | |
- windows-build | |
- macos-build | |
strategy: | |
matrix: | |
include: | |
- PLATFORM: x11-64 | |
- PLATFORM: windows-64 | |
- PLATFORM: windows-32 | |
- PLATFORM: osx-64 | |
steps: | |
- uses: actions/download-artifact@0ede0875b5db9a2824878bbbbe3d758a75eb8268 # pin@v2 | |
name: ${{ matrix.PLATFORM }}-release | |
- name: 'Upload release' | |
uses: svenstaro/upload-release-action@483c1e56f95e88835747b1c7c60581215016cbf2 # pin@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
tag: ${{ github.ref }} | |
file: godot-python-*.* | |
file_glob: true | |
overwrite: true |