Switch packages for Ubuntu & macOS to use tar.gz format instead of zip (#6)

Switch to using tar.gz format for Ubuntu and macOS systems because it is much more common on nix systems which is important in container scenarios
This commit is contained in:
Maxim Lobanov
2020-04-23 18:42:48 +03:00
committed by GitHub
parent e510e2cfd6
commit 9f83a0c6de
7 changed files with 65 additions and 22 deletions

View File

@@ -27,7 +27,7 @@ class NixNodeBuilder : NodeBuilder {
) : Base($version, $platform, $architecture) {
$this.InstallationTemplateName = "nix-setup-template.sh"
$this.InstallationScriptName = "setup.sh"
$this.OutputArtifactName = "tool.tar.gz"
$this.OutputArtifactName = "node-$Version-$Platform-$Architecture.tar.gz"
}
[uri] GetBinariesUri() {
@@ -41,7 +41,7 @@ class NixNodeBuilder : NodeBuilder {
}
[void] ExtractBinaries($archivePath) {
Extract-TarArchive -ArchivePath $archivePath -OutputDirectory $this.ArtifactLocation
Extract-TarArchive -ArchivePath $archivePath -OutputDirectory $this.WorkFolderLocation
}
[void] CreateInstallationScript() {
@@ -50,7 +50,7 @@ class NixNodeBuilder : NodeBuilder {
Create Node.js artifact installation script based on template specified in InstallationTemplateName property.
#>
$installationScriptLocation = New-Item -Path $this.ArtifactLocation -Name $this.InstallationScriptName -ItemType File
$installationScriptLocation = New-Item -Path $this.WorkFolderLocation -Name $this.InstallationScriptName -ItemType File
$installationTemplateLocation = Join-Path -Path $this.InstallationTemplatesLocation -ChildPath $this.InstallationTemplateName
$installationTemplateContent = Get-Content -Path $installationTemplateLocation -Raw
@@ -59,4 +59,9 @@ class NixNodeBuilder : NodeBuilder {
Write-Debug "Done; Installation script location: $installationScriptLocation)"
}
[void] ArchiveArtifact() {
$OutputPath = Join-Path $this.ArtifactFolderLocation $this.OutputArtifactName
Create-TarArchive -SourceFolder $this.WorkFolderLocation -ArchivePath $OutputPath
}
}

View File

@@ -30,7 +30,8 @@ class NodeBuilder {
[string] $Platform
[string] $Architecture
[string] $TempFolderLocation
[string] $ArtifactLocation
[string] $WorkFolderLocation
[string] $ArtifactFolderLocation
[string] $InstallationTemplatesLocation
NodeBuilder ([version] $version, [string] $platform, [string] $architecture) {
@@ -38,8 +39,10 @@ class NodeBuilder {
$this.Platform = $platform
$this.Architecture = $architecture
$this.ArtifactLocation = $env:BUILD_BINARIESDIRECTORY
$this.TempFolderLocation = $env:BUILD_STAGINGDIRECTORY
$this.TempFolderLocation = [IO.Path]::GetTempPath()
$this.WorkFolderLocation = $env:BUILD_BINARIESDIRECTORY
$this.ArtifactFolderLocation = $env:BUILD_STAGINGDIRECTORY
$this.InstallationTemplatesLocation = Join-Path -Path $PSScriptRoot -ChildPath "../installers"
}
@@ -89,5 +92,8 @@ class NodeBuilder {
Write-Host "Create installation script..."
$this.CreateInstallationScript()
Write-Host "Archive artifact"
$this.ArchiveArtifact()
}
}

View File

@@ -27,7 +27,7 @@ class WinNodeBuilder : NodeBuilder {
) : Base($version, $platform, $architecture) {
$this.InstallationTemplateName = "win-setup-template.ps1"
$this.InstallationScriptName = "setup.ps1"
$this.OutputArtifactName = "tool.7z"
$this.OutputArtifactName = "node-$Version-$Platform-$Architecture.zip"
}
[uri] GetBinariesUri() {
@@ -42,9 +42,9 @@ class WinNodeBuilder : NodeBuilder {
[void] ExtractBinaries($archivePath) {
$extractTargetDirectory = Join-Path $this.TempFolderLocation "tempExtract"
Extract-7ZipArchive -ArchivePath $archivePath -OutputDirectory $extractTargetDirectory
Extract-SevenZipArchive -ArchivePath $archivePath -OutputDirectory $extractTargetDirectory
$nodeOutputPath = Get-Item $extractTargetDirectory\* | Select-Object -First 1 -ExpandProperty Fullname
Move-Item -Path $nodeOutputPath\* -Destination $this.ArtifactLocation
Move-Item -Path $nodeOutputPath\* -Destination $this.WorkFolderLocation
}
[void] CreateInstallationScript() {
@@ -53,7 +53,7 @@ class WinNodeBuilder : NodeBuilder {
Create Node.js artifact installation script based on specified template.
#>
$installationScriptLocation = New-Item -Path $this.ArtifactLocation -Name $this.InstallationScriptName -ItemType File
$installationScriptLocation = New-Item -Path $this.WorkFolderLocation -Name $this.InstallationScriptName -ItemType File
$installationTemplateLocation = Join-Path -Path $this.InstallationTemplatesLocation -ChildPath $this.InstallationTemplateName
$installationTemplateContent = Get-Content -Path $installationTemplateLocation -Raw
@@ -66,4 +66,9 @@ class WinNodeBuilder : NodeBuilder {
$installationTemplateContent | Out-File -FilePath $installationScriptLocation
Write-Debug "Done; Installation script location: $installationScriptLocation)"
}
[void] ArchiveArtifact() {
$OutputPath = Join-Path $this.ArtifactFolderLocation $this.OutputArtifactName
Create-SevenZipArchive -SourceFolder $this.WorkFolderLocation -ArchivePath $OutputPath
}
}