From 7271c950e10401fa97c7b9e910ef14cb316c0da0 Mon Sep 17 00:00:00 2001 From: Matt Date: Fri, 2 Aug 2024 09:02:28 -0700 Subject: [PATCH] Run build --- .github/workflows/build.yml | 258 ---------------------------- .github/workflows/documentation.yml | 86 ---------- .github/workflows/lint-format.yml | 88 ---------- .github/workflows/python.yml | 60 ------- 4 files changed, 492 deletions(-) delete mode 100644 .github/workflows/documentation.yml delete mode 100644 .github/workflows/lint-format.yml delete mode 100644 .github/workflows/python.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 96f3d015d..f24b4244e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,116 +10,6 @@ on: branches: [ master ] jobs: - build-client: - name: "PhotonClient Build" - defaults: - run: - working-directory: photon-client - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 18 - - name: Install Dependencies - run: npm ci - - name: Build Production Client - run: npm run build - - uses: actions/upload-artifact@v4 - with: - name: built-client - path: photon-client/dist/ - build-examples: - name: "Build Examples" - runs-on: ubuntu-22.04 - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Fetch tags - run: git fetch --tags --force - - name: Install Java 17 - uses: actions/setup-java@v4 - with: - java-version: 17 - distribution: temurin - # Need to publish to maven local first, so that C++ sim can pick it up - # Still haven't figured out how to make the vendordep file be copied before trying to build examples - - name: Publish photonlib to maven local - run: | - chmod +x gradlew - ./gradlew publishtomavenlocal -x check - - name: Build Java examples - working-directory: photonlib-java-examples - run: | - chmod +x gradlew - ./gradlew copyPhotonlib -x check - ./gradlew build -x check --max-workers 2 - - name: Build C++ examples - working-directory: photonlib-cpp-examples - run: | - chmod +x gradlew - ./gradlew copyPhotonlib -x check - ./gradlew build -x check --max-workers 2 - build-gradle: - name: "Gradle Build" - runs-on: ubuntu-22.04 - steps: - # Checkout code. - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Fetch tags - run: git fetch --tags --force - - name: Install Java 17 - uses: actions/setup-java@v3 - with: - java-version: 17 - distribution: temurin - - name: Install mrcal deps - run: sudo apt-get update && sudo apt-get install -y libcholmod3 liblapack3 libsuitesparseconfig5 - - name: Gradle Build - run: | - chmod +x gradlew - ./gradlew build -x check --max-workers 2 - - name: Gradle Tests - run: ./gradlew testHeadless -i --max-workers 1 --stacktrace - - name: Gradle Coverage - run: ./gradlew jacocoTestReport --max-workers 1 - - name: Publish Coverage Report - uses: codecov/codecov-action@v3 - with: - file: ./photon-server/build/reports/jacoco/test/jacocoTestReport.xml - - name: Publish Core Coverage Report - uses: codecov/codecov-action@v3 - with: - file: ./photon-core/build/reports/jacoco/test/jacocoTestReport.xml - build-offline-docs: - name: "Build Offline Docs" - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - with: - repository: 'PhotonVision/photonvision-docs.git' - ref: master - - uses: actions/setup-python@v5 - with: - python-version: '3.9' - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install sphinx sphinx_rtd_theme sphinx-tabs sphinxext-opengraph doc8 - pip install -r requirements.txt - - name: Build the docs - run: | - make html - - uses: actions/upload-artifact@master - with: - name: built-docs - path: build/html build-photonlib-host: env: MACOSX_DEPLOYMENT_TARGET: 12 @@ -189,151 +79,3 @@ jobs: env: ARTIFACTORY_API_KEY: ${{ secrets.ARTIFACTORY_API_KEY }} if: github.event_name == 'push' - build-package: - needs: [build-client, build-gradle, build-offline-docs] - - strategy: - fail-fast: false - matrix: - include: - - os: windows-latest - artifact-name: Win64 - architecture: x64 - arch-override: none - - os: macos-latest - artifact-name: macOS - architecture: x64 - arch-override: none - - os: ubuntu-latest - artifact-name: Linux - architecture: x64 - arch-override: none - - os: macos-latest - artifact-name: macOSArm - architecture: x64 - arch-override: macarm64 - - os: ubuntu-latest - artifact-name: LinuxArm32 - architecture: x64 - arch-override: linuxarm32 - - os: ubuntu-latest - artifact-name: LinuxArm64 - architecture: x64 - arch-override: linuxarm64 - - runs-on: ${{ matrix.os }} - name: "Build fat JAR - ${{ matrix.artifact-name }}" - - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Install Java 17 - uses: actions/setup-java@v4 - with: - java-version: 17 - distribution: temurin - - run: | - rm -rf photon-server/src/main/resources/web/* - mkdir -p photon-server/src/main/resources/web/docs - if: ${{ (matrix.os) != 'windows-latest' }} - - run: | - del photon-server\src\main\resources\web\*.* - mkdir photon-server\src\main\resources\web\docs - if: ${{ (matrix.os) == 'windows-latest' }} - - uses: actions/download-artifact@v4 - with: - name: built-client - path: photon-server/src/main/resources/web/ - - uses: actions/download-artifact@v4 - with: - name: built-docs - path: photon-server/src/main/resources/web/docs - - run: | - chmod +x gradlew - ./gradlew photon-server:shadowJar --max-workers 2 -PArchOverride=${{ matrix.arch-override }} - if: ${{ (matrix.arch-override != 'none') }} - - run: | - chmod +x gradlew - ./gradlew photon-server:shadowJar --max-workers 2 - if: ${{ (matrix.arch-override == 'none') }} - - uses: actions/upload-artifact@v4 - with: - name: jar-${{ matrix.artifact-name }} - path: photon-server/build/libs - - run-smoketest-native: - needs: [build-package] - - strategy: - fail-fast: false - matrix: - include: - - os: ubuntu-latest - artifact-name: jar-Linux - extraOpts: -Djdk.lang.Process.launchMechanism=vfork - - os: windows-latest - artifact-name: jar-Win64 - extraOpts: "" - - os: macos-latest - artifact-name: jar-macOS - architecture: x64 - - runs-on: ${{ matrix.os }} - - steps: - - name: Install Java 17 - uses: actions/setup-java@v4 - with: - java-version: 17 - distribution: temurin - - uses: actions/download-artifact@v4 - with: - name: ${{ matrix.artifact-name }} - # On linux, install mrcal packages - - run: | - sudo apt-get update - sudo apt-get install --yes libcholmod3 liblapack3 libsuitesparseconfig5 - if: ${{ (matrix.os) == 'ubuntu-latest' }} - # and actually run the jar - - run: java -jar ${{ matrix.extraOpts }} *.jar --smoketest - if: ${{ (matrix.os) != 'windows-latest' }} - - run: ls *.jar | %{ Write-Host "Running $($_.Name)"; Start-Process "java" -ArgumentList "-jar `"$($_.FullName)`" --smoketest" -NoNewWindow -Wait; break } - if: ${{ (matrix.os) == 'windows-latest' }} - - run-smoketest-chroot: - needs: [build-package] - - strategy: - fail-fast: false - matrix: - include: - - os: ubuntu-latest - artifact-name: LinuxArm64 - image_suffix: RaspberryPi - image_url: https://github.com/PhotonVision/photon-image-modifier/releases/download/v2024.0.4/photonvision_raspi.img.xz - cpu: cortex-a7 - image_additional_mb: 0 - extraOpts: -Djdk.lang.Process.launchMechanism=vfork - - runs-on: ${{ matrix.os }} - name: smoketest-${{ matrix.image_suffix }} - - steps: - - uses: actions/download-artifact@v4 - with: - name: jar-${{ matrix.artifact-name }} - - - uses: pguyot/arm-runner-action@v2 - name: Run photon smoketest - id: generate_image - with: - base_image: ${{ matrix.image_url }} - image_additional_mb: ${{ matrix.image_additional_mb }} - optimize_image: yes - cpu: ${{ matrix.cpu }} - # We do _not_ wanna copy photon into the image. Bind mount instead - bind_mount_repository: true - # our image better have java installed already - commands: | - java -jar ${{ matrix.extraOpts }} *.jar --smoketest diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml deleted file mode 100644 index 67d9cd203..000000000 --- a/.github/workflows/documentation.yml +++ /dev/null @@ -1,86 +0,0 @@ -name: Documentation - -on: - push: - # For now, run on all commits to master - branches: [ master ] - # and also all tags starting with v - tags: - - 'v*' - -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: read - pages: write - id-token: write - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - build-client: - name: "PhotonClient Build" - defaults: - run: - working-directory: photon-client - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: 18 - - name: Install Dependencies - run: npm ci - - name: Build Production Client - run: npm run build-demo - - uses: actions/upload-artifact@v4 - with: - name: built-client - path: photon-client/dist/ - - run_docs: - runs-on: "ubuntu-22.04" - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Fetch tags - run: git fetch --tags --force - - name: Install Java 17 - uses: actions/setup-java@v3 - with: - java-version: 17 - distribution: temurin - - - name: Build javadocs/doxygen - run: | - chmod +x gradlew - ./gradlew docs:generateJavaDocs docs:doxygen - - - uses: actions/upload-artifact@v4 - with: - name: built-docs - path: docs/build/docs - - release: - needs: [build-client, run_docs] - - runs-on: ubuntu-22.04 - steps: - - # Download literally every single artifact. - - uses: actions/download-artifact@v4 - - - run: find . - - name: copy file via ssh password - uses: appleboy/scp-action@v0.1.7 - with: - host: ${{ secrets.WEBMASTER_SSH_HOST }} - username: ${{ secrets.WEBMASTER_SSH_USERNAME }} - password: ${{ secrets.WEBMASTER_SSH_KEY }} - port: ${{ secrets.WEBMASTER_SSH_PORT }} - source: "*" - target: /var/www/html/photonvision-docs/ diff --git a/.github/workflows/lint-format.yml b/.github/workflows/lint-format.yml deleted file mode 100644 index 0fd220a02..000000000 --- a/.github/workflows/lint-format.yml +++ /dev/null @@ -1,88 +0,0 @@ -name: Lint and Format - -on: - push: - branches: [ master ] - tags: - - 'v*' - pull_request: - branches: [ master ] - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} - cancel-in-progress: true - -jobs: - wpiformat: - name: "wpiformat" - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - - name: Fetch all history and metadata - run: | - git fetch --prune --unshallow - git checkout -b pr - git branch -f master origin/master - - name: Set up Python 3.8 - uses: actions/setup-python@v4 - with: - python-version: 3.8 - - name: Install wpiformat - run: pip3 install wpiformat - - name: Run - run: wpiformat - - name: Check output - run: git --no-pager diff --exit-code HEAD - - name: Generate diff - run: git diff HEAD > wpiformat-fixes.patch - if: ${{ failure() }} - - uses: actions/upload-artifact@v3 - with: - name: wpiformat fixes - path: wpiformat-fixes.patch - if: ${{ failure() }} - javaformat: - name: "Java Formatting" - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - uses: actions/setup-java@v3 - with: - java-version: 17 - distribution: temurin - - run: | - chmod +x gradlew - ./gradlew spotlessCheck - - client-lint-format: - name: "PhotonClient Lint and Formatting" - defaults: - run: - working-directory: photon-client - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - node-version: 18 - - name: Install Dependencies - run: npm ci - - name: Check Linting - run: npm run lint-ci - - name: Check Formatting - run: npm run format-ci - server-index: - name: "Check server index.html not changed" - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - - name: Fetch all history and metadata - run: | - git fetch --prune --unshallow - git checkout -b pr - git branch -f master origin/master - - name: Check index.html not changed - run: git --no-pager diff --exit-code origin/master photon-server/src/main/resources/web/index.html diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml deleted file mode 100644 index 2fdbda352..000000000 --- a/.github/workflows/python.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: Build and Distribute PhotonLibPy - -permissions: - id-token: write # IMPORTANT: this permission is mandatory for trusted publishing - -on: - push: - branches: [ master ] - tags: - - 'v*' - pull_request: - branches: [ master ] - -jobs: - buildAndDeploy: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: 3.11 - - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install setuptools wheel pytest - - - name: Build wheel - working-directory: ./photon-lib/py - run: | - python setup.py sdist bdist_wheel - - - name: Run Unit Tests - working-directory: ./photon-lib/py - run: | - pip install --no-cache-dir dist/*.whl - pytest - - - - name: Upload artifacts - uses: actions/upload-artifact@master - with: - name: dist - path: ./photon-lib/py/dist/ - - - name: Publish package distributions to TestPyPI - # Only upload on tags - if: startsWith(github.ref, 'refs/tags/v') - uses: pypa/gh-action-pypi-publish@release/v1 - with: - packages_dir: ./photon-lib/py/dist/ - - permissions: - id-token: write # IMPORTANT: this permission is mandatory for trusted publishing