<?xml version="1.0" encoding="UTF-8"?>
<project
	xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.eclipse.qvtd</groupId>
	<artifactId>org.eclipse.qvtd.releng.promote</artifactId>
	<version>0.31.0-SNAPSHOT</version>
	<packaging>pom</packaging>
	<!-- based on releng/org.eclipse.nebula.site/promotion/pom.xml and https://eclipse.dev/justj/?page=tools --> 
	<properties>
	    <tycho-version>4.0.5</tycho-version>
	    <tycho-extras-version>${tycho-version}</tycho-extras-version>
		
		<!--
		Overrideable parameters - defaults here might suit usage as part of a total build, but we 
		promote separately and only if the build succeeds, so overrides are probably necessary.
		
		The "Build QVTd Promote Test"" launch allows some testing locally.
		
		The "JustJ for QVTd" Eclipse launch supports regular Java debugging."
		-->
		<BUILD_COMMIT>-commit https://git.eclipse.org/r/mmt/org.eclipse.qvtd.git/commit/?id=${env.GIT_COMMIT}</BUILD_COMMIT>
		<BUILD_PROMOTE>${org.eclipse.justj.p2.manager.build.url}</BUILD_PROMOTE>
		<BUILD_REMOTE>-remote genie.qvtd@projects-storage.eclipse.org:/home/data/httpd/download.eclipse.org/mmt/qvtd</BUILD_REMOTE>
		<BUILD_ROOT>${project.build.directory}/justj-sync</BUILD_ROOT>
		<BUILD_TIMESTAMP>-timestamp ${build.timestamp}</BUILD_TIMESTAMP>
		<BUILD_TYPE>${build.type}</BUILD_TYPE>
		
		
		<eclipse.repo>https://download.eclipse.org/releases/latest</eclipse.repo>
		<justj.tools.repo>https://download.eclipse.org/justj/tools/updates/nightly/latest</justj.tools.repo>
		<org.eclipse.justj.p2.manager.args></org.eclipse.justj.p2.manager.args>
		<maven.build.timestamp.format>yyyyMMddHHmm</maven.build.timestamp.format>
		<org.eclipse.justj.p2.manager.build.url>${BUILD_URL}</org.eclipse.justj.p2.manager.build.url>
		
	</properties>
	<build>
		<plugins>
			<plugin>
				<groupId>org.eclipse.tycho.extras</groupId>
				<artifactId>tycho-eclipserun-plugin</artifactId>
				<version>${tycho-version}</version>
				<configuration>
					<executionEnvironment>JavaSE-17</executionEnvironment>
					<dependencies>
						<dependency>
							<artifactId>org.eclipse.justj.p2</artifactId>
							<type>eclipse-plugin</type>
						</dependency>
						<dependency>
							<artifactId>org.apache.felix.scr</artifactId>
							<type>eclipse-plugin</type>
						</dependency>
					</dependencies>
					<repositories>
						<repository>
							<id>eclipse.repo</id>
							<layout>p2</layout>
							<url>${eclipse.repo}</url>
						</repository>
						<repository>
							<id>justj.tools.repo</id>
							<layout>p2</layout>
							<url>${justj.tools.repo}</url>
						</repository>
					</repositories>
				</configuration>
				<executions>
					<execution>
						<id>promote</id>
						<goals>
							<goal>eclipse-run</goal>
						</goals>
						<phase>verify</phase>
						<configuration>
							<argLine></argLine>
							<appArgLine>
                              -consoleLog
                              -application org.eclipse.justj.p2.manager
                              -data @None
                              -nosplash
                              ${org.eclipse.justj.p2.manager.args}
                              ${BUILD_REMOTE}
                              -retain 5
                              -label "QVTd"
                              -build-url ${org.eclipse.justj.p2.manager.build.url}
                              -root ${BUILD_ROOT}
                              -relative builds
                              -version-iu-pattern org\.eclipse\.qvtd\.master\.feature.*
                              -primary-iu-filter-pattern org\.eclipse\.qvtd\.master\.feature.*
                              ${BUILD_COMMIT}
                              -target-url https://download.eclipse.org/mmt/qvtd
                              -promote ${BUILD_PROMOTE}
                              ${BUILD_TIMESTAMP}
                              -type ${BUILD_TYPE}
                              -breadcrumb "QVTd https://projects.eclipse.org/projects/modeling.mmt.qvtd"
                              -mapping qvtd->QVTd
                              -archive "P2 repos https://archive.eclipse.org/mmt/qvtd/updates/releases"
                              -archive "zips/drops https://archive.eclipse.org/mmt/qvtd/downloads/drops"
                              ${org.eclipse.justj.p2.manager.extra.args}
							</appArgLine>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

</project>