name: build on: [push, pull_request] jobs: build_win: runs-on: windows-latest steps: - uses: actions/checkout@v3 - uses: ilammy/msvc-dev-cmd@v1 - name: Compile shell: bash run: | python3 build.py windows python3 build.py windows -lib mkdir -p output/windows/x86_64 cp pocketpy.exe output/windows/x86_64 cp pocketpy.dll output/windows/x86_64 - uses: actions/upload-artifact@v3 with: path: output - name: Unit Test run: python3 scripts/run_tests.py - name: Benchmark run: python3 scripts/run_tests.py benchmark build_linux: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup Clang uses: egor-tensin/setup-clang@v1 with: version: 15 platform: x64 - name: Install libc++ run: sudo apt install -y libc++-15-dev libc++1-15 libc++abi-15-dev libc++abi1-15 - name: Compile run: | python3 build.py linux python3 build.py linux -lib mkdir -p output/linux/x86_64 cp pocketpy output/linux/x86_64 cp pocketpy.so output/linux/x86_64 - uses: actions/upload-artifact@v3 with: path: output - name: Unit Test run: python3 scripts/run_tests.py - name: Benchmark run: python3 scripts/run_tests.py benchmark - name: GCC Build Test run: g++ -o pocketpy --std=c++17 src/main.cpp build_macos: runs-on: macos-latest steps: - uses: actions/checkout@v3 - run: | python3 amalgamate.py cd plugins/macos/pocketpy mkdir -p output/macos xcodebuild clean build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO cp -r build/Release/pocketpy.bundle output/macos - uses: actions/upload-artifact@v3 with: path: plugins/macos/pocketpy/output build_android: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: subosito/flutter-action@v2 with: flutter-version: '3.3.0' channel: 'stable' cache: true - run: flutter --version - name: Compile run: | python3 amalgamate.py cd plugins/flutter/example flutter build apk --split-debug-info=.debug-info --split-per-abi cd build/app/outputs/flutter-apk mkdir -p output/android/arm64-v8a mkdir -p output/android/armeabi-v7a mkdir -p output/android/x86_64 unzip -q app-arm64-v8a-release.apk -d tmp mv tmp/lib/arm64-v8a/libpocketpy.so output/android/arm64-v8a/libpocketpy.so rm -rf tmp unzip -q app-armeabi-v7a-release.apk -d tmp mv tmp/lib/armeabi-v7a/libpocketpy.so output/android/armeabi-v7a/libpocketpy.so rm -rf tmp unzip -q app-x86_64-release.apk -d tmp mv tmp/lib/x86_64/libpocketpy.so output/android/x86_64/libpocketpy.so rm -rf tmp - uses: actions/upload-artifact@v3 with: path: plugins/flutter/example/build/app/outputs/flutter-apk/output build_web: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup emsdk uses: mymindstorm/setup-emsdk@v12 with: version: 3.1.25 actions-cache-folder: 'emsdk-cache' - name: Verify emsdk run: emcc -v - name: Compile run: | mkdir -p output/web/lib python3 build.py web cp web/lib/* output/web/lib - uses: actions/upload-artifact@v3 with: path: output