Merge pull request #43 from Javernaut/dependabot/github_actions/actio… #92
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Unified workflow | |
| on: | |
| # When a release is created via Github UI or | |
| release: | |
| types: [ released ] | |
| # a push to main branch is done or | |
| push: | |
| branches: [ main ] | |
| # a PR is opened to main branch | |
| pull_request: | |
| branches: [ main ] | |
| concurrency: | |
| # 'release' event has the tag as the ref: refs/tags/v1.2.3 | |
| # 'push' event has the branch name as the ref: refs/heads/main | |
| # 'pull_request' event has the PR's unique ref: refs/pull/5/merge | |
| group: ${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| env: | |
| ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }} | |
| ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} | |
| ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.SIGNING_KEY_ID }} | |
| ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }} | |
| ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_KEY }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Enable KVM group perms | |
| run: | | |
| echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules | |
| sudo udevadm control --reload-rules | |
| sudo udevadm trigger --name-match=kvm | |
| ls /dev/kvm | |
| - name: Gradle Wrapper Validation | |
| uses: gradle/wrapper-validation-action@v3 | |
| - name: Overriding gradle.properties for CI | |
| run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: temurin | |
| java-version: 17 | |
| - name: Setup the environment | |
| run: sudo apt-get install nasm ninja-build meson | |
| - name: Assembling the ffmpeg-android-maker | |
| run: | | |
| export ANDROID_SDK_HOME=$ANDROID_HOME | |
| export ANDROID_NDK_HOME=$ANDROID_NDK_LATEST_HOME | |
| ./ffmpeg-android-maker/ffmpeg-android-maker.sh -dav1d | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v5 | |
| - name: Building | |
| run: ./gradlew :media-file:assembleRelease | |
| - name: Testing | |
| run: ./gradlew :media-file:pixel2api34ReleaseAndroidTest -Pandroid.testoptions.manageddevices.emulator.gpu=swiftshader_indirect | |
| - name: Publishing the library to Maven Central | |
| # Only for 'When a release is created via Github UI' | |
| if: github.event_name == 'release' | |
| run: ./gradlew publishToMavenCentral | |
| - name: Publishing the library to Maven Central (SNAPSHOT) | |
| # Only for 'a push to main branch is done' | |
| if: github.event_name == 'push' | |
| run: ./gradlew publishToMavenCentral -Pmediafile.versionSuffix=SNAPSHOT |