# Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. $gpgKeyId = "********" # ******************************************************** # Set version and release candidate number $version = "1.7.3" $rcNumber = "rc1" # ******************************************************** $scriptPath = Split-Path -Parent $MyInvocation.MyCommand.Path $projectPath = (Get-Item (Split-Path -Parent $scriptPath)).Parent.FullName $distPath = "$projectPath\dist" # Clean up the 'dist' directory Write-Host "Cleaning up the 'dist' directory..." Remove-Item -Recurse -Force $distPath\* -ErrorAction SilentlyContinue New-Item -ItemType Directory -Path $distPath -Force # Clean up the 'web-app/dist' directory Write-Host "Cleaning up the 'web-app/dist' directory..." $webAppDistPath = "$projectPath\web-app\dist" Remove-Item -Recurse -Force $webAppDistPath\* -ErrorAction SilentlyContinue New-Item -ItemType Directory -Path $webAppDistPath -Force Push-Location -Path $projectPath Write-Host "Installing dependencies and packaging web-app..." Push-Location -Path "web-app" yarn install yarn package Pop-Location Write-Host "Building project with Maven..." mvn clean package -Prelease -DskipTests mvn clean install -DskipTests Write-Host "Building collector..." Push-Location -Path "collector" mvn clean package -Pcluster -DskipTests Pop-Location # package release artifacts Write-Host "Archiving source code..." git archive --format=tar.gz --output="dist/apache-hertzbeat-$version-incubating-src.tar.gz" --prefix=apache-hertzbeat-$version-incubating-src/ release-$version-$rcNumber # sign release artifacts Write-Host "Signing release artifacts..." Push-Location -Path "dist" Get-ChildItem *.tar.gz | ForEach-Object { $fileName = $_.Name Write-Host "Signing $fileName..." gpg -u $gpgKeyId --armor --output "$fileName.asc" --detach-sig "$fileName" Write-Host "Generating SHA512 for $fileName..." $hash = Get-FileHash -Path "$fileName" -Algorithm SHA512 $hashString = $hash.Hash "$hashString $fileName" | Out-File "$fileName.sha512" -Append -NoNewline } Pop-Location # verify signatures Write-Host "Verifying signatures..." Push-Location -Path "dist" Get-ChildItem *.tar.gz | ForEach-Object { $fileName = $_.Name Write-Host "Verifying $fileName..." gpg --verify "$fileName.asc" "$fileName" Write-Host "Checking SHA512 for $fileName..." $hash = Get-FileHash -Path "$fileName" -Algorithm SHA512 if ($hash.Hash -eq $null) { Write-Host "Hash mismatch for $fileName" } else { Write-Host "Hash verified for $fileName" } } Pop-Location