Bläddra i källkod

restore workflows

blueloveTH 1 år sedan
förälder
incheckning
f0b3cb102e
4 ändrade filer med 325 tillägg och 0 borttagningar
  1. BIN
      .github/workflows.zip
  2. 207 0
      .github/workflows/main.yml
  3. 76 0
      .github/workflows/pybind11.yml
  4. 42 0
      .github/workflows/website.yml

BIN
.github/workflows.zip


+ 207 - 0
.github/workflows/main.yml

@@ -0,0 +1,207 @@
+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
+      with:
+        submodules: true
+    - uses: ilammy/msvc-dev-cmd@v1
+    - name: Compile
+      shell: powershell
+      run: |
+        python amalgamate.py
+        cd amalgamated
+        cl.exe /std:c11 /utf-8 /Ox /I. pocketpy.c main.c /link /out:pkpy.exe
+  build_win32:
+    runs-on: windows-latest
+    steps:
+    - uses: actions/checkout@v4
+      with:
+        submodules: true
+    - 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
+      with:
+        submodules: true
+    - name: Setup Clang
+      uses: egor-tensin/setup-clang@v1
+      with:
+        version: 15
+        platform: x64
+    - name: Install dependencies
+      run: sudo apt-get install -y 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 and Test
+      run: |
+        mkdir -p output/x86_64
+        python cmake_build.py
+        python scripts/run_tests.py
+        cp main output/x86_64
+        cp libpocketpy.so output/x86_64
+      env:
+        CC: clang
+    - uses: actions/upload-artifact@v4
+      with:
+        name: linux
+        path: output
+    - name: Benchmark
+      run: python scripts/run_tests.py benchmark
+  build_linux_x86:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+        with:
+          submodules: true
+      - 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
+        with:
+          submodules: true
+      - name: Compile and Test
+        run: |
+          python cmake_build.py
+          python scripts/run_tests.py
+      - name: Benchmark
+        run: python scripts/run_tests.py benchmark
+      - name: Test Amalgamated Build
+        run: python amalgamate.py
+  build_android:
+      runs-on: ubuntu-latest
+      steps:
+      - uses: actions/checkout@v4
+        with:
+          submodules: true
+      - 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
+
+          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
+        with:
+          submodules: true
+      - 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"
+        
+      - 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 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 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

+ 76 - 0
.github/workflows/pybind11.yml

@@ -0,0 +1,76 @@
+name: PKBIND Build and Test
+
+on:
+  push:
+    paths-ignore:
+      - "docs/**"
+      - "web/**"
+      - "**.md"
+  pull_request:
+    paths-ignore:
+      - "docs/**"
+      - "web/**"
+      - "**.md"
+
+jobs:
+  build_linux:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout code
+        uses: actions/checkout@v4
+
+      - name: Set up GCC
+        run: |
+          sudo apt-get update
+          sudo apt-get install -y gcc g++
+
+      - name: Set up CMake
+        uses: jwlawson/actions-setup-cmake@v1.10
+
+      - name: Test
+        run: |
+          cd include/pybind11/tests
+          cmake -B build
+          cmake --build build --config Release --parallel
+          ./build/PKBIND_TEST
+
+  build_win:
+    runs-on: windows-latest
+    steps:
+      - name: Checkout code
+        uses: actions/checkout@v4
+
+      - name: Set up MSVC
+        uses: ilammy/msvc-dev-cmd@v1
+
+      - name: Set up CMake
+        uses: jwlawson/actions-setup-cmake@v1.10
+
+      - name: Test
+        run: |
+          cd include\pybind11\tests
+          cmake -B build
+          cmake --build build --config Release --parallel
+          build\Release\PKBIND_TEST.exe
+
+  build_mac:
+    runs-on: macos-latest
+    steps:
+      - name: Checkout code
+        uses: actions/checkout@v4
+
+      - name: Set up Clang
+        run: |
+          brew install llvm
+          echo 'export PATH="/usr/local/opt/llvm/bin:$PATH"' >> ~/.zshrc
+          source ~/.zshrc
+
+      - name: Set up CMake
+        uses: jwlawson/actions-setup-cmake@v1.10
+
+      - name: Test
+        run: |
+          cd include/pybind11/tests
+          cmake -B build -DENABLE_TEST=ON
+          cmake --build build --config Release --parallel
+          ./build/PKBIND_TEST

+ 42 - 0
.github/workflows/website.yml

@@ -0,0 +1,42 @@
+name: website
+
+on:
+  push:
+    branches: [ main ]
+  pull_request:
+    branches: [ main ]
+
+permissions:
+  contents: write
+
+jobs:
+  deploy:
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout@v4
+    ###################################################
+    - uses: actions/setup-node@v3.1.1
+    - name: Retype build
+      run: |
+        python scripts/gen_docs.py
+        cd docs
+        npm install retypeapp -g
+        retype build
+    ###################################################
+    - name: Setup emsdk
+      uses: mymindstorm/setup-emsdk@v12
+      with:
+        version: latest
+        actions-cache-folder: 'emsdk-cache'
+    - name: Compile
+      run: |
+        bash build_web.sh
+        mv web docs/.retype/static
+    ###################################################
+    - uses: crazy-max/ghaction-github-pages@v3
+      with:
+        target_branch: gh-pages
+        build_dir: docs/.retype
+      env:
+        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+      if: github.ref == 'refs/heads/main'