Skip to content

build TPDM Minimal Template sqlServer #57

build TPDM Minimal Template sqlServer

build TPDM Minimal Template sqlServer #57

name: build TPDM Minimal Template sqlServer
on:
workflow_dispatch:
inputs:
ODS_version:
type: string
required: false
description: "ODS_version: Ed-Fi ODS/API version. Default: 6.1"
tpdm_version:
type: string
required: false
description: "tpdm_version: TPDM version as noted in the Community Extension built nuget package artifact. Default: 1.1.0"
Ed-Fi-ODS-ref:
type: string
required: false
description: "Ed-Fi-ODS-ref: checks out the specified branch/tag of the Ed-Fi-ODS repo. Default branch if not specified."
Ed-Fi-ODS-Implementation-ref:
type: string
required: false
description: "Ed-Fi-ODS-Implementation-ref: checks out the specified branch/tag of the Ed-Fi-ODS-Implementation repo. Default branch if not specified."
env:
tpdm_version: "1.1.0"
version_suite: "3"
ODS_version: "6.1"
ods_ref: ""
ods_ref_implementation: ""
jobs:
build:
runs-on: windows-latest
steps:
- name: Set env variables
shell: pwsh
run: |
$version_patch = ${{ format('{0}{1}', github.run_number , github.run_attempt) }}
if ("${{ github.event.inputs.tpdm_version }}" -ne "") {
echo "tpdm_version=${{ github.event.inputs.tpdm_version }}" >> $env:GITHUB_ENV
}
if ("${{ github.event.inputs.Ed-Fi-ODS-ref }}" -ne "") {
echo "ods_ref=${{ github.event.inputs.Ed-Fi-ODS-ref }}" >> $env:GITHUB_ENV
}
if ("${{ github.event.inputs.Ed-Fi-ODS-Implementation-ref }}" -ne "") {
echo "ods_ref_implementation=${{ github.event.inputs.Ed-Fi-ODS-Implementation-ref }}" >> $env:GITHUB_ENV
}
if ("${{ github.event.inputs.ODS_version }}" -ne "") {
echo "ODS_version=${{ github.event.inputs.ODS_version }}" >> $env:GITHUB_ENV
}
echo ("version_core=${{ env.ODS_version }}." + "$version_patch") >> $env:GITHUB_ENV
echo "temp=${{ github.workspace }}\temp" >> $env:GITHUB_ENV
- name: Git long filename support
run: |
git config --system core.longpaths true
- name: Ed-Fi-ODS
uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
with:
repository: Ed-Fi-Alliance-OSS/Ed-Fi-ODS
ref: ${{ env.ods_ref }}
path: Ed-Fi-ODS
- name: Ed-Fi-ODS-Implementation
uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
with:
repository: Ed-Fi-Alliance-OSS/Ed-Fi-ODS-Implementation
ref: ${{ env.ods_ref_implementation }}
path: Ed-Fi-ODS-Implementation
- name: Ed-Fi-Extension
uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
with:
path: Ed-Fi-TPDM-Extension
- name: Workaround for duplicate package references in EdFi.Ods.Sandbox.csproj
run: |
$f = Get-Content .\EdFi.Ods.Sandbox.csproj -Raw
$first_part = $f | Select-String -Pattern '(?s)^.*?(?=\<PackageReference)' | Foreach {$_.matches.value} | Out-String
$unique_packages = $f | Select-String -allmatches -Pattern '(?m)^.*?<PackageReference.*$' | Foreach {$_.Matches.value} | Select-Object -Unique | Out-String
$last_part = $f | Select-String -Pattern '(?s)\<\/ItemGroup.*' | Foreach {$_.matches.value} | Out-String
$first_part + $unique_packages + $last_part > .\EdFi.Ods.Sandbox.csproj
working-directory: Ed-Fi-ODS\Application\EdFi.Ods.Sandbox
- name: Workaround for file copy
run: |
(get-content ./Ed-Fi-ODS-Implementation/DatabaseTemplate/Modules/create-database-template.psm1 -Raw).replace('-Destination "$directory\$xmlFile"', '-Destination "$directory\$($xmlFile.Name)"').replace('-Destination "$directory\$xsdFile"', '-Destination "$directory\$($xsdFile.Name)"') | set-content ./Ed-Fi-ODS-Implementation/DatabaseTemplate/Modules/create-database-template.psm1
- name: Replace package name and version in packages config
run: |
(Get-Content configuration.packages.json -Raw) `
-replace '(?ism)(?<="tpdm")(.*?)\d(.*?)Core\.(\d+.\d+\.\d+)(.*?)\d+.\d+\.\d+' `
, '${1}3$2Community.${{ env.tpdm_version }}${4}${{ env.tpdm_package_version }}' `
| Out-File configuration.packages.json
working-directory: ./Ed-Fi-ODS-Implementation
- name: Replace package name in create script
run: |
(Get-Content ./Ed-Fi-ODS-Implementation/DatabaseTemplate/Modules/create-tpdm-minimal-template.psm1) `
-replace 'Core', 'Community' ` |
Out-File ./Ed-Fi-ODS-Implementation/DatabaseTemplate/Modules/create-tpdm-minimal-template.psm1
- name: Install SQL Server
run: choco install sql-server-2019 --no-progress --params="'/IgnorePendingReboot'"
- name: Remove Ed-Fi Databases
run: |
$ErrorActionPreference = 'Stop'
Import-Module ./Ed-Fi-ODS-Implementation/logistics/scripts/modules/build-management.psm1
Remove-EdFiDatabases -Force
- name: Initialize-DevelopmentEnvironment
run: |
$ErrorActionPreference = 'Stop'
./Initialize-PowershellForDevelopment.ps1
Initialize-DevelopmentEnvironment -UsePlugins -NoDeploy
working-directory: ./Ed-Fi-ODS-Implementation
- name: Create Database Template
run: |
Import-Module -Force -Scope Global ${{ github.workspace }}\Ed-Fi-ODS-Implementation\DatabaseTemplate\Modules\create-tpdm-minimal-template.psm1
Initialize-TPDMMinimalTemplate -samplePath "D:\a\Ed-Fi-TPDM-Community-Artifacts\Ed-Fi-TPDM-Community-Artifacts\Ed-Fi-TPDM-Extension\"
working-directory: ./Ed-Fi-TPDM-Extension
- name: Pack
run: |
nuget pack ${{ github.workspace }}/Ed-Fi-ODS-Implementation/DatabaseTemplate/Database/EdFi.Ods.Minimal.Template.TPDM.Community.nuspec `
-OutputDirectory ${{ github.workspace }}/NugetPackages `
-Version ${{ env.version_core }} `
-Properties configuration=release `
-Properties authors="Ed-Fi Alliance" `
-Properties owners="Ed-Fi Alliance" `
-Properties copyright="Copyright ©Ed-Fi Alliance, LLC. 2020" `
-Properties id="EdFi.Suite${{ env.version_suite }}.Ods.Minimal.Template.TPDM.Community.${{ env.tpdm_version }}" `
-Properties title="EdFi.Suite${{ env.version_suite }}.Ods.Minimal.Template.TPDM.Community.${{ env.tpdm_version }}" `
-Properties description="EdFi Ods Minimal Template TPDM Community Database" `
-NoPackageAnalysis -NoDefaultExcludes
working-directory: ${{ github.workspace }}/Ed-Fi-TPDM-Extension
- name: Create temp folder for upload artifact action
run: |
mkdir temp
- name: Upload artifact
uses: actions/upload-artifact@e448a9b857ee2131e752b06002bf0e093c65e571
with:
name: EdFi.Suite${{ env.version_suite }}.Ods.Minimal.Template.TPDM.Community.${{ env.tpdm_version }}.${{ env.version_core }}.nupkg
path: NugetPackages\*.nupkg