/
build.xml
90 lines (75 loc) · 4.37 KB
/
build.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?xml version = "1.0"?>
<project name = "Liquibase chocolatey package build helper"
default = "info">
<target name = "info" description="Show some infos about this build file." depends="load.properties">
<echo>Ant build that helps preparing liquibase chocolatey releases.</echo>
</target>
<target name="load.properties" description = "Load external parametrized properties.">
<loadproperties>
<file file="liquibase.properties"/>
</loadproperties>
<echo>Liquibase target version : <${liquibase.version}></echo>
</target>
<target name = "clean" description="Clean all build result files.">
<echo>Cleaning generated NUGETS generated package (nupkg) and other dynamic build files like *.ps1.</echo>
<delete>
<fileset dir="." includes="*.nupkg"/>
<fileset dir="./work/" includes="*.asc"/>
<fileset dir="./work/" includes="*.zip"/>
<fileset dir="./work/" includes="*.jar"/>
<fileset dir="." includes="*.nuspec"/>
<fileset dir="." includes="**/*.ps1"/>
</delete>
</target>
<target name="get.sha512" depends="load.properties"
description="Get the SHA512 checksum from Liquibase Github official release.">
<echo>Downloading zip distribution file from Github...</echo>
<mkdir dir="work"/>
<!--
https://github.com/liquibase/liquibase/releases/download/v${liquibase.version}/liquibase-${liquibase.version}.zip
-->
<get
src="https://github.com/liquibase/liquibase/releases/download/v${liquibase.version}/liquibase-${liquibase.version}.zip"
dest="work/liquibase-${liquibase.version}-bin.zip"/>
<!--<get src="http://central.maven.org/maven2/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar" dest="work/slf4j-api-1.7.25.jar"/>-->
</target>
<target name="load.sha512.as.property" depends="get.sha512" description="Loads the sha512 checksum as a property.">
<echo>Generate SHA-512 checksum...</echo>
<checksum file="work/liquibase-${liquibase.version}-bin.zip" algorithm="SHA-512" property="sha512"/>
<checksum file="work/liquibase-${liquibase.version}-bin.zip" algorithm="SHA-512" fileext=".asc"/>
<echo>Got SHA-512 checksum : <${sha512}></echo>
</target>
<target name="make-nuspec"
description="Prepare all files for a new Liquibase release."
depends="load.sha512.as.property">
<echo>Preparing <liquibase.nuspec> file : injecting liquibase version...</echo>
<copy file="templates/liquibase.nuspec.TEMPLATE" tofile="liquibase.nuspec"/>
<echo>Injecting target liquibase version in nuspec file...</echo>
<replace file="liquibase.nuspec" token="@LIQUIBASE_VERSION@" value="${liquibase.version}"/>
<echo>nuspec file prepared.</echo>
<echo>Preparing <chocolateyInstall.ps1> ...</echo>
<copy file="templates/chocolateyInstall.ps1.TEMPLATE" tofile="tools/chocolateyInstall.ps1"/>
<replace file="tools/chocolateyInstall.ps1" token="@LIQUIBASE_VERSION@" value="${liquibase.version}"/>
<replace file="tools/chocolateyInstall.ps1" token="@SHA512@" value="${sha512}"/>
<echo><chocolateyInstall.ps1> file prepared.</echo>
<echo>Preparing <chocolateyUninstall.ps1> ...</echo>
<copy file="templates/chocolateyUninstall.ps1.TEMPLATE" tofile="tools/chocolateyUninstall.ps1"/>
<replace file="tools/chocolateyUninstall.ps1" token="@LIQUIBASE_VERSION@" value="${liquibase.version}"/>
<echo><chocolateyUninstall.ps1> file prepared.</echo>
<echo>All build files prepared.</echo>
<echo>Preparing <release.ps1> ...</echo>
<copy file="templates/release.ps1.TEMPLATE" tofile="release.ps1"/>
<replace file="release.ps1" token="@LIQUIBASE_VERSION@" value="${liquibase.version}"/>
<echo><release.ps1> file prepared.</echo>
</target>
<target name="make"
depends="make-nuspec"
description="Build nupkg chocolatey package.">
<exec executable="cmd">
<arg value="/c"/>
<arg value="choco install --yes -fdv liquibase.nuspec"/>
</exec>
<echo>Release command :</echo>
<echo>choco push liquibase.${liquibase.version}.nupkg -s https://chocolatey.org/ -apikey *******</echo>
</target>
</project>