125 lines
5.2 KiB
XML
125 lines
5.2 KiB
XML
<project name="Jet CI Steps" default="none">
|
|
<import file="build.xml" optional="false"/>
|
|
|
|
<property name="build.number" value="snapshot"/>
|
|
<property name="jdk16.home" value="${java.home}"/>
|
|
<property name="fail.on.plugin.verifier.error" value="true"/>
|
|
|
|
<property name="version_substitute_dir" value="${basedir}/versions_temp/" />
|
|
|
|
<property name="artifact.output.path" value="${basedir}/out/artifacts"/>
|
|
<property name="plugin.xml" value="idea/src/META-INF/plugin.xml"/>
|
|
<property name="plugin.xml.bk" value="${version_substitute_dir}/plugin.xml.bk"/>
|
|
<property name="plugin.xml.versioned" value="${plugin.xml}.versioned" />
|
|
|
|
<property name="compiler.version.java" value="compiler/cli/cli-common/src/org/jetbrains/jet/cli/common/KotlinVersion.java"/>
|
|
<property name="compiler.version.java.bk" value="${version_substitute_dir}/KotlinVersion.java.bk"/>
|
|
<property name="compiler.version.java.versioned" value="${compiler.version.java}.versioned" />
|
|
|
|
<property name="plugin.zip" value="${artifact.output.path}/kotlin-plugin-${build.number}.zip" />
|
|
<property name="bare.plugin.zip" value="${artifact.output.path}/kotlin-bare-plugin-${build.number}.zip" />
|
|
|
|
<macrodef name="echoprop">
|
|
<attribute name="prop"/>
|
|
<sequential>
|
|
<echo>@{prop}=${@{prop}}</echo>
|
|
</sequential>
|
|
</macrodef>
|
|
|
|
<echoprop prop="os.name"/>
|
|
<echoprop prop="os.version"/>
|
|
<echoprop prop="os.arch"/>
|
|
<echoprop prop="java.home"/>
|
|
<echoprop prop="java.vendor"/>
|
|
<echoprop prop="java.version"/>
|
|
<echoprop prop="user.name"/>
|
|
<echoprop prop="user.home"/>
|
|
<echoprop prop="user.dir"/>
|
|
|
|
<target name="cleanupArtifacts">
|
|
<delete dir="${artifact.output.path}" includes="*"/>
|
|
</target>
|
|
|
|
<macrodef name="substituteVersionInFile">
|
|
<attribute name="target.file"/>
|
|
<attribute name="test.string"/>
|
|
<attribute name="target.file.bk" default="@{target.file}.bk"/>
|
|
<attribute name="target.file.versioned" default="@{target.file}.versioned"/>
|
|
<attribute name="token.key" default="snapshot"/>
|
|
<attribute name="version" default="${build.number}"/>
|
|
<sequential>
|
|
<!-- Create backup. Backup will be restored after build end. This will allow to rebuild project without renew
|
|
plugin.xml from repository. -->
|
|
<copy file="@{target.file}" tofile="@{target.file.bk}"/>
|
|
|
|
<!-- Check that version has correct pattern for substitution -->
|
|
<copy todir="">
|
|
<fileset file="@{target.file.bk}">
|
|
<contains text="@{test.string}"/>
|
|
</fileset>
|
|
<filterchain>
|
|
<replacetokens>
|
|
<token key="@{token.key}" value="@{version}"/>
|
|
</replacetokens>
|
|
</filterchain>
|
|
<mergemapper to="@{target.file.versioned}"/>
|
|
</copy>
|
|
|
|
<!-- If file doesn't exist - there's a problem with original plugin.xml. Probably there's a bad pattern used for version -->
|
|
<copy file="@{target.file.versioned}" tofile="@{target.file}" overwrite="true"/>
|
|
|
|
<delete file="@{target.file.versioned}" quiet="true"/>
|
|
</sequential>
|
|
</macrodef>
|
|
|
|
<target name="writeVersionToTemplateFiles">
|
|
<mkdir dir="${version_substitute_dir}"/>
|
|
|
|
<substituteVersionInFile
|
|
target.file="${plugin.xml}"
|
|
target.file.bk="${plugin.xml.bk}"
|
|
target.file.versioned="${plugin.xml.versioned}"
|
|
test.string="<version>@snapshot@</version>"/>
|
|
|
|
<substituteVersionInFile
|
|
target.file="${compiler.version.java}"
|
|
target.file.bk="${compiler.version.java.bk}"
|
|
target.file.versioned="${compiler.version.java.versioned}"
|
|
test.string="public static final String VERSION = "@snapshot@";"/>
|
|
</target>
|
|
|
|
<target name="revertTemplateFiles">
|
|
<copy file="${plugin.xml.bk}" tofile="${plugin.xml}" overwrite="true"/>
|
|
<copy file="${compiler.version.java.bk}" tofile="${compiler.version.java}" overwrite="true"/>
|
|
|
|
<delete dir="${version_substitute_dir}" quiet="true"/>
|
|
</target>
|
|
|
|
<target name="pre_build" depends="writeVersionToTemplateFiles, cleanupArtifacts"/>
|
|
|
|
<target name="zipArtifacts">
|
|
<macrodef name="zipPlugin">
|
|
<attribute name="filename"/>
|
|
<attribute name="dir"/>
|
|
|
|
<sequential>
|
|
<zip destfile="@{filename}">
|
|
<zipfileset prefix="@{dir}" dir="${artifact.output.path}/@{dir}" excludes="kotlinc/bin/*"/>
|
|
<zipfileset prefix="@{dir}/kotlinc/bin" dir="${artifact.output.path}/@{dir}/kotlinc/bin" includes="*.bat" filemode="644"/>
|
|
<zipfileset prefix="@{dir}/kotlinc/bin" dir="${artifact.output.path}/@{dir}/kotlinc/bin" excludes="*.bat" filemode="755"/>
|
|
</zip>
|
|
<delete dir="${artifact.output.path}/@{dir}" quiet="true"/>
|
|
</sequential>
|
|
</macrodef>
|
|
|
|
<zipPlugin filename="${plugin.zip}" dir="Kotlin"/>
|
|
<zipPlugin filename="${bare.plugin.zip}" dir="BareKotlin"/>
|
|
</target>
|
|
|
|
<target name="post_build" depends="zipArtifacts, revertTemplateFiles"/>
|
|
|
|
<target name="none">
|
|
<fail message="Either specify pre_build or post_build"/>
|
|
</target>
|
|
</project>
|