caea551d41
We often hit "Too Many Requests" errors when uploading the cache with `actions/cache` because there's a limit of 10 GB every 5 minutes, and we can easily go over it when we amend or merge several PRs in a short timespan. This will make the CI artifacts less useful for debugging crashes but there's no real way around this.
85 lines
2.8 KiB
Text
85 lines
2.8 KiB
Text
name: 🌐 JavaScript Builds
|
|
on: [push, pull_request]
|
|
|
|
# Global Settings
|
|
env:
|
|
GODOT_BASE_BRANCH: master
|
|
SCONSFLAGS: platform=javascript verbose=yes warnings=extra werror=yes debug_symbols=no --jobs=2
|
|
SCONS_CACHE_LIMIT: 4096
|
|
EM_VERSION: 1.39.20
|
|
EM_CACHE_FOLDER: 'emsdk-cache'
|
|
|
|
jobs:
|
|
javascript-template:
|
|
runs-on: "ubuntu-20.04"
|
|
name: Template (target=release, tools=no)
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
# Azure repositories are not reliable, we need to prevent azure giving us packages.
|
|
- name: Make apt sources.list use the default Ubuntu repositories
|
|
run: |
|
|
sudo rm -f /etc/apt/sources.list.d/*
|
|
sudo cp -f misc/ci/sources.list /etc/apt/sources.list
|
|
sudo apt-get update
|
|
|
|
# Upload cache on completion and check it out now
|
|
- name: Load .scons_cache directory
|
|
id: javascript-template-cache
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: ${{github.workspace}}/.scons_cache/
|
|
key: ${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
|
restore-keys: |
|
|
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}-${{github.sha}}
|
|
${{github.job}}-${{env.GODOT_BASE_BRANCH}}-${{github.ref}}
|
|
${{github.job}}-${{env.GODOT_BASE_BRANCH}}
|
|
|
|
# Additional cache for Emscripten generated system libraries
|
|
- name: Load Emscripten cache
|
|
id: javascript-template-emscripten-cache
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: ${{env.EM_CACHE_FOLDER}}
|
|
key: ${{env.EM_VERSION}}-${{github.job}}
|
|
|
|
# Use python 3.x release (works cross platform)
|
|
- name: Set up Python 3.x
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
# Semantic version range syntax or exact version of a Python version
|
|
python-version: '3.x'
|
|
# Optional - x64 or x86 architecture, defaults to x64
|
|
architecture: 'x64'
|
|
|
|
# You can test your matrix by printing the current Python version
|
|
- name: Configuring Python packages
|
|
run: |
|
|
python -c "import sys; print(sys.version)"
|
|
python -m pip install scons
|
|
python --version
|
|
scons --version
|
|
|
|
- name: Set up Emscripten latest
|
|
uses: mymindstorm/setup-emsdk@v6
|
|
with:
|
|
version: ${{env.EM_VERSION}}
|
|
actions-cache-folder: ${{env.EM_CACHE_FOLDER}}
|
|
|
|
- name: Verify Emscripten setup
|
|
run: |
|
|
emcc -v
|
|
|
|
- name: Compilation
|
|
env:
|
|
SCONS_CACHE: ${{github.workspace}}/.scons_cache/
|
|
run: |
|
|
scons target=release tools=no use_closure_compiler=yes
|
|
ls -l bin/
|
|
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: ${{ github.job }}
|
|
path: bin/*
|
|
retention-days: 14
|