diff --git a/.github/release.yml b/.github/release.yml index d62e3abf..4eefc596 100644 --- a/.github/release.yml +++ b/.github/release.yml @@ -11,6 +11,18 @@ changelog: - title: Exciting New Features 🎉 labels: - enhancement + - title: Espresso test + labels: + - Espresso + - title: Bug fix + labels: + - bugfix + - title: Pipeline + labels: + - pipeline + - title: Dependencies + labels: + - dependencies - title: Other Changes labels: - "*" \ No newline at end of file diff --git a/.github/workflows/Android-CI-release.yml b/.github/workflows/Android-CI-release.yml deleted file mode 100644 index 0e0dcf82..00000000 --- a/.github/workflows/Android-CI-release.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: Release - -on: - push: - tags: - - '*' - -jobs: - build: - name: Release - runs-on: macOS-latest - strategy: - matrix: - java_version: [ 11 ] - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Find Tag - id: tagger - uses: jimschubert/query-tag-action@v2 - with: - skip-unshallow: 'true' - abbrev: false - commit-ish: HEAD - - name: Install JDK ${{ matrix.java_version }} - uses: actions/setup-java@v4 - with: - distribution: 'adopt' - java-version: ${{ matrix.java_version }} - - name: Install Android SDK - uses: malinskiy/action-android/install-sdk@release/0.1.4 - - name: Build project - run: ./gradlew assembleRelease - - - name: Create Release - uses: softprops/action-gh-release@v1 - with: - tag_name: ${{steps.tagger.outputs.tag}} - name: ${{steps.tagger.outputs.tag}} - generate_release_notes: true - files: ./mjpeg-view/build/outputs/aar/mjpeg-view-release.aar - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/Android-CI.yml b/.github/workflows/Android-CI.yml index 7141063d..073d4158 100644 --- a/.github/workflows/Android-CI.yml +++ b/.github/workflows/Android-CI.yml @@ -1,59 +1,88 @@ -name: PullRequest +name: Pull request on: push: branches: - master pull_request: - branches: - - master +env: + resourceRunID: ${{ github.run_id }}-${{ github.run_number }} jobs: - buildTest: - name: Build & Test JDK ${{ matrix.java_version }} - runs-on: macOS-latest + Build: + name: Test + runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: - java_version: [ 11.0.3 ] + os: [ ubuntu-24.04 ] + api: [ 34 ] + abi: [ x86_64 ] + emulatorApi: [ 14 ] + tag: [ 'google_apis' ] steps: - - name: Checkout - uses: actions/checkout@v4 + - name: kvm support + run: | + egrep -c '(vmx|svm)' /proc/cpuinfo + id + sudo adduser $USER kvm + sudo chown -R $USER /dev/kvm + id + - uses: actions/checkout@v5 with: - fetch-depth: 0 - - name: Install JDK ${{ matrix.java_version }} - uses: actions/setup-java@v4 + submodules: true + - name: set up JDK + uses: actions/setup-java@v5 with: distribution: 'adopt' - java-version: ${{ matrix.java_version }} + java-version: 17 + - uses: gradle/actions/wrapper-validation@v5 - name: Install Android SDK - uses: malinskiy/action-android/install-sdk@release/0.1.1 - - name: Build project - run: ./gradlew build - - name: Run tests - run: ./gradlew test + uses: hannesa2/action-android/install-sdk@0.1.16.7 + - name: Android Emulator test + uses: hannesa2/action-android/emulator-run-cmd@0.1.16.7 + with: + cmd: ./gradlew cAT --continue + api: ${{ matrix.api }} + tag: ${{ matrix.tag }} + abi: ${{ matrix.abi }} + cmdOptions: -noaudio -no-boot-anim -no-window -metrics-collection + disableAnimations: true + bootTimeout: 720 + - uses: actions/upload-artifact@v4 + if: ${{ always() }} + with: + name: ipcam-Espresso-${{ matrix.api }}-${{ matrix.abi }}-report-${{ matrix.emulatorApi }} + path: | + ./**/build/reports/androidTests/connected + ./**/build/outputs/androidTest-results/connected Check: name: Check - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: - java_version: [ 11.0.3 ] + os: [ ubuntu-22.04 ] steps: - - name: Checkout - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: - fetch-depth: 0 - - name: Install JDK ${{ matrix.java_version }} - uses: actions/setup-java@v4 + submodules: true + - name: set up JDK + uses: actions/setup-java@v5 with: distribution: 'adopt' - java-version: ${{ matrix.java_version }} + java-version: 17 - name: Install Android SDK - uses: malinskiy/action-android/install-sdk@release/0.1.1 + uses: hannesa2/action-android/install-sdk@0.1.16.7 + - name: Run tests + run: ./gradlew test - name: Code checks run: ./gradlew check - name: Archive Lint report uses: actions/upload-artifact@v4 if: ${{ always() }} with: - name: IP-Cam-Lint-report - path: app/build/reports/lint-results.html + name: IPView-Lint-report + path: | + ./**/build/reports/lint-results*.html + ./**/build/reports/ktlint/ktlintMainSourceSetCheck/ktlintMainSourceSetCheck.txt diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml deleted file mode 100644 index d346cb55..00000000 --- a/.github/workflows/gradle-wrapper-validation.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: "Validate Gradle Wrapper" -on: - push: - branches: - - master - pull_request: - branches: - - master - -jobs: - validation: - name: "Validation" - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: gradle/wrapper-validation-action@v1 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..9c01be56 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,54 @@ +name: Release + +on: + push: + tags: + - '*' + +jobs: + build: + name: Publish release + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v5 + with: + submodules: true + - name: Find Tag + id: tagger + uses: jimschubert/query-tag-action@v2 + with: + skip-unshallow: 'true' + commit-ish: HEAD + - name: Check pre-release + run: | + echo "tag=${{steps.tagger.outputs.tag}}" + if [[ ${{ steps.tagger.outputs.tag }} == *alpha* || ${{ steps.tagger.outputs.tag }} == *beta* ]] + then + prerelease=true + else + prerelease=false + fi + echo "PRE_RELEASE=$prerelease" >> $GITHUB_ENV + echo "prerelease=$prerelease" + - name: Install JDK + uses: actions/setup-java@v5 + with: + distribution: 'adopt' + java-version: 17 + - name: Install Android SDK + uses: hannesa2/action-android/install-sdk@0.1.16.7 + - name: Build project + run: ./gradlew assembleRelease + env: + VERSION: ${{steps.tagger.outputs.tag}} + - name: Create Release + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{steps.tagger.outputs.tag}} + generate_release_notes: true + prerelease: ${{ env.PRE_RELEASE }} + name: ${{steps.tagger.outputs.tag}} + files: | + ./mjpeg-view/build/outputs/aar/mjpeg-view-release.aar + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..4328b650 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "buildSrc"] + path = buildSrc + url = git@github.com:hannesa2/KotlinBuildSource.git diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index 4dbbc6ae..5fc8cd6f 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -31,6 +31,7 @@