diff --git a/.github/workflows/semver-check-release.yml b/.github/workflows/semver-check-release.yml new file mode 100644 index 00000000000..5e0e9308795 --- /dev/null +++ b/.github/workflows/semver-check-release.yml @@ -0,0 +1,17 @@ +name: Release Semver Check + +on: + workflow_dispatch: + pull_request: + branches: + - 'releases/**' + +jobs: + semver-check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3.5.3 + + - name: Perform gradle build + run: | + ./gradlew semverCheckForRelease diff --git a/.github/workflows/semver-check.yml b/.github/workflows/semver-check.yml index 420a8ab2449..36ac4542108 100644 --- a/.github/workflows/semver-check.yml +++ b/.github/workflows/semver-check.yml @@ -4,14 +4,65 @@ on: workflow_dispatch: pull_request: branches: - - 'releases/**' + - 'master' jobs: - semver-check: - runs-on: ubuntu-latest + determine_changed: + name: "Determine changed modules" + runs-on: ubuntu-22.04 + if: (github.repository == 'Firebase/firebase-android-sdk' && github.event_name == 'push') || github.event_name == 'pull_request' + outputs: + modules: ${{ steps.changed-modules.outputs.modules }} steps: - uses: actions/checkout@v3.5.3 + with: + fetch-depth: 2 + submodules: true - - name: Perform gradle build + - name: Set up JDK 11 + uses: actions/setup-java@v3 + with: + java-version: 11 + distribution: temurin + cache: gradle + + - id: changed-modules + run: | + git diff --name-only HEAD~1 | xargs printf -- '--changed-git-paths %s\n' | xargs ./gradlew writeChangedProjects --only-firebase-sdks --output-file-path=modules.json + echo modules=$(cat modules.json) >> $GITHUB_OUTPUT + + semver_checks: + name: "Semver Checks" + runs-on: ubuntu-22.04 + needs: + - determine_changed + strategy: + fail-fast: false + matrix: + module: ${{ fromJSON(needs.determine_changed.outputs.modules) }} + + steps: + - uses: actions/checkout@v3.5.3 + + - name: Set up JDK 11 + uses: actions/setup-java@v3 + with: + java-version: 11 + distribution: temurin + cache: gradle + + - name: ${{ matrix.module }} Semver Check run: | - ./gradlew semverCheckForRelease + ./gradlew ${{matrix.module}}:semverCheck + + # A job that fails if any job in the semver_checks matrix fails, + # to be used as a required check for merging. + check_all: + runs-on: ubuntu-22.04 + if: always() + name: Semver Check (matrix) + needs: semver_checks + steps: + - name: Check test matrix + if: needs.semver_checks.result != 'success' + run: exit 1 diff --git a/firebase-common/gradle.properties b/firebase-common/gradle.properties index 97f41337e63..1b74c4712ff 100644 --- a/firebase-common/gradle.properties +++ b/firebase-common/gradle.properties @@ -1,3 +1,3 @@ -version=20.4.3 +version=20.5.0 latestReleasedVersion=20.4.2 android.enableUnitTestBinaryResources=true diff --git a/firebase-components/firebase-dynamic-module-support/gradle.properties b/firebase-components/firebase-dynamic-module-support/gradle.properties index 4b7021762ba..f3ea6d3b5f7 100644 --- a/firebase-components/firebase-dynamic-module-support/gradle.properties +++ b/firebase-components/firebase-dynamic-module-support/gradle.properties @@ -12,5 +12,5 @@ # See the License for the specific language governing permissions and # limitations under the License. -version=16.0.1 +version=17.0.0 latestReleasedVersion=16.0.0-beta03 diff --git a/firebase-config/gradle.properties b/firebase-config/gradle.properties index bcab05af05d..571c8076d3c 100644 --- a/firebase-config/gradle.properties +++ b/firebase-config/gradle.properties @@ -14,7 +14,7 @@ # limitations under the License. # -version=21.6.2 +version=22.0.0 latestReleasedVersion=21.6.1 android.enableUnitTestBinaryResources=true diff --git a/firebase-database-collection/gradle.properties b/firebase-database-collection/gradle.properties index 737638ce496..977ba4623fa 100644 --- a/firebase-database-collection/gradle.properties +++ b/firebase-database-collection/gradle.properties @@ -1,2 +1,2 @@ -version=18.0.2 +version=19.0.0 latestReleasedVersion=18.0.1 diff --git a/firebase-inappmessaging-display/gradle.properties b/firebase-inappmessaging-display/gradle.properties index 2a43f72bc44..5b10feccf1d 100644 --- a/firebase-inappmessaging-display/gradle.properties +++ b/firebase-inappmessaging-display/gradle.properties @@ -1,2 +1,2 @@ -version=20.4.1 +version=20.5.0 latestReleasedVersion=20.4.0 diff --git a/firebase-inappmessaging/gradle.properties b/firebase-inappmessaging/gradle.properties index 2a43f72bc44..5b10feccf1d 100644 --- a/firebase-inappmessaging/gradle.properties +++ b/firebase-inappmessaging/gradle.properties @@ -1,2 +1,2 @@ -version=20.4.1 +version=20.5.0 latestReleasedVersion=20.4.0 diff --git a/protolite-well-known-types/gradle.properties b/protolite-well-known-types/gradle.properties index a60ca35eca9..74e4b9da286 100644 --- a/protolite-well-known-types/gradle.properties +++ b/protolite-well-known-types/gradle.properties @@ -1,5 +1,5 @@ # IMPORTANT (b/285892320) Keep version and latestReleasedVersion in sync # unless you are releasing a new version of the library to prevent issues # with transitive dependencies. -version=18.0.0 +version=19.0.0 latestReleasedVersion=18.0.0