From 9da8b443ced9433ef674356602b7897dda29a215 Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Thu, 6 Jun 2024 22:57:53 +0800 Subject: [PATCH] Update main.yml --- .github/workflows/main.yml | 394 ++++++++++++++++++------------------- 1 file changed, 197 insertions(+), 197 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 87dae4e8..2f288ad5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,206 +1,206 @@ -# name: build -# on: -# push: -# paths-ignore: -# - 'docs/**' -# - 'web/**' -# - '**.md' -# pull_request: -# paths-ignore: -# - 'docs/**' -# - 'web/**' -# - '**.md' -# jobs: -# build_win32_amalgamated: -# runs-on: windows-latest -# steps: -# - uses: actions/checkout@v4 -# - uses: ilammy/msvc-dev-cmd@v1 -# - name: Compile -# shell: powershell -# run: | -# python amalgamate.py -# cd amalgamated -# cl.exe /std:c++17 /EHsc /utf-8 /Ox /I. /DPK_ENABLE_OS=1 main.cpp /link /out:pkpy.exe -# # - uses: actions/upload-artifact@v4 -# # with: -# # name: amalgamated -# # path: amalgamated/pkpy.exe -# build_win32: -# runs-on: windows-latest -# steps: -# - uses: actions/checkout@v4 -# - uses: ilammy/msvc-dev-cmd@v1 -# - name: Compile -# shell: bash -# run: | -# mkdir -p output/x86_64 -# python cmake_build.py -# cp main.exe output/x86_64 -# cp pocketpy.dll output/x86_64 -# - uses: actions/upload-artifact@v4 -# with: -# name: windows -# path: output -# - name: Unit Test -# run: python scripts/run_tests.py -# - name: Benchmark -# run: python scripts/run_tests.py benchmark -# build_linux: -# runs-on: ubuntu-20.04 -# steps: -# - uses: actions/checkout@v4 -# - name: Setup Clang -# uses: egor-tensin/setup-clang@v1 -# with: -# version: 15 -# platform: x64 -# - name: Install libc++ -# run: sudo apt-get install -y libc++-15-dev libc++1-15 libc++abi-15-dev libc++abi1-15 libclang-rt-15-dev -# - name: Unit Test with Coverage -# run: bash run_tests.sh -# - name: Upload coverage reports to Codecov -# uses: codecov/codecov-action@v4 -# with: -# token: ${{ secrets.CODECOV_TOKEN }} -# directory: .coverage -# if: github.ref == 'refs/heads/main' -# - name: Compile -# run: | -# mkdir -p output/x86_64 -# python cmake_build.py -# cp main output/x86_64 -# cp libpocketpy.so output/x86_64 -# env: -# CXX: clang++ -# CC: clang -# - uses: actions/upload-artifact@v4 -# with: -# name: linux -# path: output -# - name: Benchmark -# run: python scripts/run_tests.py benchmark -# - name: C Binding Test -# run: bash run_c_binding_test.sh -# build_linux_x86: -# runs-on: ubuntu-latest -# steps: -# - uses: actions/checkout@v4 -# - name: Setup Alpine Linux for aarch64 -# uses: jirutka/setup-alpine@v1 -# with: -# arch: x86 -# packages: gcc g++ make cmake libc-dev linux-headers python3 -# - name: Build and Test -# run: | -# uname -m -# python cmake_build.py -# python scripts/run_tests.py -# python scripts/run_tests.py benchmark -# shell: alpine.sh --root {0} -# build_darwin: -# runs-on: macos-latest -# steps: -# - uses: actions/checkout@v4 -# - name: Compile and Test -# run: | -# python cmake_build.py -# python scripts/run_tests.py -# - name: Benchmark -# run: python scripts/run_tests.py benchmark -# - run: | -# python amalgamate.py -# cd plugins/macos/pocketpy -# mkdir output -# xcodebuild clean build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO -# cp -r build/Release/pocketpy.bundle output -# - uses: actions/upload-artifact@v4 -# with: -# name: macos -# path: plugins/macos/pocketpy/output -# build_android: -# runs-on: ubuntu-latest -# steps: -# - uses: actions/checkout@v4 -# - uses: nttld/setup-ndk@v1 -# id: setup-ndk -# with: -# ndk-version: r23 -# local-cache: false -# add-to-path: false -# - name: Compile Shared Library -# run: | -# bash build_android.sh arm64-v8a -# bash build_android.sh armeabi-v7a -# bash build_android.sh x86_64 +name: build +on: + push: + paths-ignore: + - 'docs/**' + - 'web/**' + - '**.md' + pull_request: + paths-ignore: + - 'docs/**' + - 'web/**' + - '**.md' +jobs: + build_win32_amalgamated: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + - uses: ilammy/msvc-dev-cmd@v1 + - name: Compile + shell: powershell + run: | + python amalgamate.py + cd amalgamated + cl.exe /std:c++17 /EHsc /utf-8 /Ox /I. /DPK_ENABLE_OS=1 main.cpp /link /out:pkpy.exe + # - uses: actions/upload-artifact@v4 + # with: + # name: amalgamated + # path: amalgamated/pkpy.exe + build_win32: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + - uses: ilammy/msvc-dev-cmd@v1 + - name: Compile + shell: bash + run: | + mkdir -p output/x86_64 + python cmake_build.py + cp main.exe output/x86_64 + cp pocketpy.dll output/x86_64 + - uses: actions/upload-artifact@v4 + with: + name: windows + path: output + - name: Unit Test + run: python scripts/run_tests.py + - name: Benchmark + run: python scripts/run_tests.py benchmark + build_linux: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + - name: Setup Clang + uses: egor-tensin/setup-clang@v1 + with: + version: 15 + platform: x64 + - name: Install libc++ + run: sudo apt-get install -y libc++-15-dev libc++1-15 libc++abi-15-dev libc++abi1-15 libclang-rt-15-dev + - name: Unit Test with Coverage + run: bash run_tests.sh + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v4 + with: + token: ${{ secrets.CODECOV_TOKEN }} + directory: .coverage + if: github.ref == 'refs/heads/main' + - name: Compile + run: | + mkdir -p output/x86_64 + python cmake_build.py + cp main output/x86_64 + cp libpocketpy.so output/x86_64 + env: + CXX: clang++ + CC: clang + - uses: actions/upload-artifact@v4 + with: + name: linux + path: output + - name: Benchmark + run: python scripts/run_tests.py benchmark + - name: C Binding Test + run: bash run_c_binding_test.sh + build_linux_x86: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup Alpine Linux for aarch64 + uses: jirutka/setup-alpine@v1 + with: + arch: x86 + packages: gcc g++ make cmake libc-dev linux-headers python3 + - name: Build and Test + run: | + uname -m + python cmake_build.py + python scripts/run_tests.py + python scripts/run_tests.py benchmark + shell: alpine.sh --root {0} + build_darwin: + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + - name: Compile and Test + run: | + python cmake_build.py + python scripts/run_tests.py + - name: Benchmark + run: python scripts/run_tests.py benchmark + - run: | + python amalgamate.py + cd plugins/macos/pocketpy + mkdir output + xcodebuild clean build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO + cp -r build/Release/pocketpy.bundle output + - uses: actions/upload-artifact@v4 + with: + name: macos + path: plugins/macos/pocketpy/output + build_android: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: nttld/setup-ndk@v1 + id: setup-ndk + with: + ndk-version: r23 + local-cache: false + add-to-path: false + - name: Compile Shared Library + run: | + bash build_android.sh arm64-v8a + bash build_android.sh armeabi-v7a + bash build_android.sh x86_64 -# mkdir -p output/arm64-v8a -# mkdir -p output/armeabi-v7a -# mkdir -p output/x86_64 + mkdir -p output/arm64-v8a + mkdir -p output/armeabi-v7a + mkdir -p output/x86_64 -# cp build/android/arm64-v8a/libpocketpy.so output/arm64-v8a -# cp build/android/armeabi-v7a/libpocketpy.so output/armeabi-v7a -# cp build/android/x86_64/libpocketpy.so output/x86_64 -# env: -# ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }} -# - uses: actions/upload-artifact@v4 -# with: -# name: android -# path: output -# build_ios: -# runs-on: macos-latest -# steps: -# - uses: actions/checkout@v4 -# - name: Compile Frameworks -# run: | -# git clone https://github.com/leetal/ios-cmake --depth 1 ~/ios-cmake -# bash build_ios.sh -# mkdir -p output -# cp -r build/pocketpy.xcframework output/pocketpy.xcframework -# - uses: actions/upload-artifact@v4 -# with: -# name: ios -# path: output + cp build/android/arm64-v8a/libpocketpy.so output/arm64-v8a + cp build/android/armeabi-v7a/libpocketpy.so output/armeabi-v7a + cp build/android/x86_64/libpocketpy.so output/x86_64 + env: + ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }} + - uses: actions/upload-artifact@v4 + with: + name: android + path: output + build_ios: + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + - name: Compile Frameworks + run: | + git clone https://github.com/leetal/ios-cmake --depth 1 ~/ios-cmake + bash build_ios.sh + mkdir -p output + cp -r build/pocketpy.xcframework output/pocketpy.xcframework + - uses: actions/upload-artifact@v4 + with: + name: ios + path: output -# merge: -# runs-on: ubuntu-latest -# needs: [ build_win32, build_linux, build_darwin, build_android, build_ios ] -# steps: -# - name: "Create output directory" -# run: "mkdir $GITHUB_WORKSPACE/output" + merge: + runs-on: ubuntu-latest + needs: [ build_win32, build_linux, build_darwin, build_android, build_ios ] + steps: + - name: "Create output directory" + run: "mkdir $GITHUB_WORKSPACE/output" -# - name: "Merge win32" -# uses: actions/download-artifact@v4.1.7 -# with: -# name: windows -# path: $GITHUB_WORKSPACE/output/windows + - name: "Merge win32" + uses: actions/download-artifact@v4.1.7 + with: + name: windows + path: $GITHUB_WORKSPACE/output/windows -# - name: "Merge linux" -# uses: actions/download-artifact@v4.1.7 -# with: -# name: linux -# path: $GITHUB_WORKSPACE/output/linux + - name: "Merge linux" + uses: actions/download-artifact@v4.1.7 + with: + name: linux + path: $GITHUB_WORKSPACE/output/linux -# - name: "Merge darwin" -# uses: actions/download-artifact@v4.1.7 -# with: -# name: macos -# path: $GITHUB_WORKSPACE/output/macos + - name: "Merge darwin" + uses: actions/download-artifact@v4.1.7 + with: + name: macos + path: $GITHUB_WORKSPACE/output/macos -# - name: "Merge android" -# uses: actions/download-artifact@v4.1.7 -# with: -# name: android -# path: $GITHUB_WORKSPACE/output/android + - name: "Merge android" + uses: actions/download-artifact@v4.1.7 + with: + name: android + path: $GITHUB_WORKSPACE/output/android -# - name: "Merge ios" -# uses: actions/download-artifact@v4.1.7 -# with: -# name: ios -# path: $GITHUB_WORKSPACE/output/ios + - name: "Merge ios" + uses: actions/download-artifact@v4.1.7 + with: + name: ios + path: $GITHUB_WORKSPACE/output/ios -# - name: "Upload merged artifact" -# uses: actions/upload-artifact@v4.3.3 -# with: -# name: all-in-one -# path: $GITHUB_WORKSPACE/output + - name: "Upload merged artifact" + uses: actions/upload-artifact@v4.3.3 + with: + name: all-in-one + path: $GITHUB_WORKSPACE/output