petit update ;)

quand vous avez une build qui construit plus de 1 projet
et que ceux ci ont des numeros de revision different

il vous faut un buildtag

quelques cas d'usage

a) tous les differents projets sont sous le meme repo

   projectA-1.2.3.456.zip
   projectB-1.0.0.456.zip
   projectC-2.1.0.456.zip

   ici vous pouvew utiliser le rev number comme identifiant de la
build

b) quand les projets sont sous des repos differents

   projectA-1.2.3.456.zip
   projectB-1.0.0.34.zip
   projectC-2.1.0.122.zip

   la les rev number sont different partout

   mais en utilisant un identifiant de build on peut avoir qlqch de
plus cohérent

   1A123-projectA-1.2.3.456.zip
   1A123-projectB-1.0.0.34.zip
   1A123-projectC-2.1.0.122.zip


bon maintenant le format "1A123" a quoi cela correspond

1 - pour la série
A - pour le cycle
123 - pour la build

et c'est inspiré directement des firmware pour le iphone :p
http://www.iclarified.com/entry/index.php?enid=750

ex:
2.0.0 (2G): iPhone1,1_2.0_5A347_Restore.ipsw
2.0.0 (3G): iPhone1,2_2.0_5A347_Restore.ipsw
2.0.1 (2G): iPhone1,1_2.0.1_5B108_Restore.ipsw
2.0.1 (3G): iPhone1,2_2.0.1_5B108_Restore.ipsw
2.0.2 (2G): iPhone1,1_2.0.2_5C1_Restore.ipsw
2.0.2 (3G): iPhone1,2_2.0.2_5C1_Restore.ipsw


je ne sais pas si tout le monde en a besoin mais dans mon cas
où au boulot je lance une metabuild a peu pres 50+ fois par jour
et qui deal avec 17 projects sur 17 repos différents
j'en ai besoin

et dans un proche futur ce sera surement réutiliser pour maashaack,
et à ce moment là je ferais un petit tuto pour gerer ce genre de
metabuild.

votre version.properties par defaut
----
version.major=0
version.minor=0
version.build=0
version.serie=1
version.cycle=A
----

note version.major et version.minor sont à éditer à la main

voila la tite tache ant
----
    <target name="tag">

        <property file="version.properties" prefix="previous." />

        <if>
            <equals arg1="${previous.version.build}" arg2="999" />
        <then>
            <propertyfile file="version.properties">
                <entry key="version.build" type="int" value="0"/>
            </propertyfile>
            <script language="javascript">
            numeric =
Number( project.getProperty("previous.version.serie") );
            letter  =
String( project.getProperty("previous.version.cycle") );
            if( letter == "Z" )
            {
                letter = "A";
                numeric++;
            }
            else
            {
                letter =
String.fromCharCode( letter.charCodeAt(0)+1 );
            }
            project.setNewProperty("current.serie", numeric);
            project.setNewProperty("current.cycle", letter);
            </script>
            <propertyfile file="version.properties">
                <entry key="version.serie" type="int" value="$
{current.serie}"/>
                <entry key="version.cycle" type="string" value="$
{current.cycle}"/>
            </propertyfile>
        </then>
        <else>
            <propertyfile file="version.properties">
                <entry key="version.build" type="int" operation="+"
default="0"/>
            </propertyfile>
            <replaceregexp file="version.properties" match="#.*"
replace="" />
        </else>
        </if>

        <property file="version.properties" prefix="build." />
        <property name="build.version.tag" value="$
{build.version.serie}${build.version.cycle}${build.version.build}" />

    </target>
----

zwetan

-- 
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes FCNG.
Pour envoyer un message à ce groupe, adressez un e-mail à [email protected].
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse 
[email protected].
Pour plus d'options, consultez la page de ce groupe : 
http://groups.google.com/group/fcng?hl=fr

Répondre à