Come gestire (di notte) le build nei repository per molte piattaforme

6

al momento ho un repository (git) per il mio progetto e uso tecniche di ramificazione per lo sviluppo. Questo è un progetto molto nuovo e volevo sistemare le cose sin dall'inizio. Creerò questa app per Win32, Win64 e OSX. Ora, voglio introdurre le build (non proprio di notte poiché sono uno sviluppatore unico ma frequente). Come configureresti quanto sopra in termini di branching e repository? Ho trovato le seguenti opzioni:

A. Un repository con master-sviluppo e ramificazione e fusione e rebranching per Win32 / 64 / OSX con molti tagging

B. Tre repository separati:

  1. Sviluppo: pratica abituale qui con master (che terrà l'ultima build finale per versione) e sviluppo con altri bug / funzionalità ... rami

  2. Quando voglio creare una build (non finale), i file verranno archiviati in un altro repository separato per ogni piattaforma (qualcosa come RC-Win32, RC-Win64, RC-OSX) e verranno utilizzati i tag

  3. Quando sono pronto per la versione finale per piattaforma, costruirò tutto e spingerò su un altro repository, ad esempio Release-Win32, Release-Win64, Release-OSX

È un piano solido? Qual è la pratica comune quando hai build di scope diverse (release, nightly, release candidate) e per piattaforme diverse?

Una domanda che viene in mente per lo scenario B è dove e quando includerò altre cose come installer, documentazione, ecc .... Inoltre, ti fidi di VCS e tieni tutto dentro quando hai un pacchetto finale che hai schierato? Ad esempio, se ho MyApp v1.0 (inclusi documenti, ecc. Ecc.) Li lasci nel repository o controlli tutto in una cartella per fare riferimento? (Mi sento davvero più a mio agio con questo)

    
posta John Kouraklis 09.06.2016 - 03:03
fonte

1 risposta

2

Lavoro su una piattaforma che consegna a più piattaforme da un unico repo. Funziona. Decidi di astrarre le parti che devono essere consapevoli del sistema operativo.

Se la tua app salverà dati o comunicherà ad altri processi, sii religioso riguardo alla definizione di tipi di dati non predefiniti che garantiscono una dimensione specifica in modo che le versioni a 32 e 64 bit possano leggere e scrivere un file di dati comune.

    
risposta data 28.05.2018 - 06:58
fonte

Leggi altre domande sui tag