fitlien-services/fitlien-services-pipeline.yaml

84 lines
2.4 KiB
YAML

trigger:
- main
pool:
vmImage: "ubuntu-latest"
variables:
major: $(VERSION_MAJOR)
minor: $(VERSION_MINOR)
prefix: $[format('{0}.{1}', variables['major'], variables['minor'])]
patch: $[counter(variables['prefix'], 100)]
buildNumber: $(major).$(minor).$(patch)
steps:
- task: PowerShell@2
displayName: "Setting build version"
inputs:
targetType: "inline"
script: |
Write-Host "##vso[build.updatebuildnumber]${buildNumber}"
- task: NodeTool@0
displayName: "Install Node"
inputs:
version: "20"
- task: Npm@1
displayName: "npm install"
inputs:
command: "install"
- task: PowerShell@2
displayName: "Set version in package.json"
inputs:
targetType: "inline"
script: |
$pkg = Get-Content -Path "$(System.DefaultWorkingDirectory)/functions/package.json" -Raw | ConvertFrom-Json
$pkg.version = "${{ parameters.buildNumber }}"
$pkg | ConvertTo-Json -Depth 100 | Set-Content -Path "$(System.DefaultWorkingDirectory)/functions/package.json"
- task: CmdLine@2
displayName: "Copy .env.example to .env"
inputs:
script: |
cp "$(System.DefaultWorkingDirectory)/functions/.env.example" "$(System.DefaultWorkingDirectory)/functions/.env"
- task: ReplaceTokens@3
displayName: "Replace tokens in .env file"
inputs:
targetFiles: "$(System.DefaultWorkingDirectory)/functions/.env"
tokenPrefix: "#{"
tokenSuffix: "}#"
- task: Npm@1
displayName: "npm run build"
inputs:
command: "custom"
workingDir: "$(System.DefaultWorkingDirectory)/functions"
customCommand: "run build"
- task: DeleteFiles@1
displayName: "Remove node_modules, *.log files, src directory from functions directory"
inputs:
SourceFolder: "$(System.DefaultWorkingDirectory)/functions"
Contents: |
node_modules/**
*.log
src/**
- task: ArchiveFiles@2
displayName: "Archive functions directory"
inputs:
rootFolderOrFile: "$(System.DefaultWorkingDirectory)/functions"
includeRootFolder: false
archiveFile: "$(System.DefaultWorkingDirectory)/fitlien-services-$(buildNumber).zip"
compression: "zip"
- task: CopyFiles@2
displayName: "Copy archive to staging directory"
inputs:
SourceFolder: "$(System.DefaultWorkingDirectory)"
Contents: "fitlien-services-$(buildNumber).zip"
TargetFolder: "$(System.ArtifactsDirectory)"