blob: 77bedc81f923b178362df2b708bafd51039c4967 [file] [log] [blame] [edit]
# Copyright 2014 The Flutter Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# ---------------------------------- NOTE ---------------------------------- #
#
# Please keep the logic in this file consistent with the logic in the
# `update_engine_version.sh` script in the same directory to ensure that Flutter
# continues to work across all platforms!
#
# -------------------------------------------------------------------------- #
$ErrorActionPreference = "Stop"
$progName = Split-Path -parent $MyInvocation.MyCommand.Definition
$flutterRoot = (Get-Item $progName).parent.parent.FullName
# Test for fusion repository
if ((Test-Path "$flutterRoot\DEPS" -PathType Leaf) -and (Test-Path "$flutterRoot\engine\src\.gn" -PathType Leaf)) {
# Calculate the engine hash from tracked git files.
$branch = (git -C "$flutterRoot" rev-parse --abbrev-ref HEAD)
if ($null -eq $Env:LUCI_CONTEXT) {
$ErrorActionPreference = "Continue"
git -C "$flutterRoot" remote get-url upstream *> $null
$exitCode = $?
$ErrorActionPreference = "Stop"
if ($exitCode) {
$engineVersion = (git -C "$flutterRoot" merge-base HEAD upstream/master)
} else {
$engineVersion = (git -C "$flutterRoot" merge-base HEAD origin/master)
}
}
else {
$engineVersion = (git -C "$flutterRoot" rev-parse HEAD)
}
if (($branch -ne "stable" -and $branch -ne "beta")) {
# Write the engine version out so downstream tools know what to look for.
$utf8NoBom = New-Object System.Text.UTF8Encoding($false)
[System.IO.File]::WriteAllText("$flutterRoot\bin\internal\engine.version", $engineVersion, $utf8NoBom)
# The realm on CI is passed in.
if ($Env:FLUTTER_REALM) {
[System.IO.File]::WriteAllText("$flutterRoot\bin\internal\engine.realm", $Env:FLUTTER_REALM, $utf8NoBom)
}
}
}