Démarrage rapide · Drone

Tea CI est un service d'intégration continue pour les développeurs Windows, gratuit pour les projets open source. Tea CI exécute un fork de Drone CI avec une prise en charge supplémentaire de Cygwin / Msys2 sur Wine afin de compiler le logiciel Windows. Toute documentation sur Drone CI devrait constituer une bonne référence pour Tea CI. Cette documentation peut associer les mots-clés Drone CI et Tea CI.

Avant de configurer votre construction, vous devez connecter votre référentiel github à Tea CI. Tout d’abord, connectez-vous à Tea CI avec votre compte github, puis recherchez votre référentiel avec la barre en haut à droite de l’interface utilisateur Web de Tea CI, cliquez sur le nom de votre référentiel et accédez à https://tea-ci.org//, enfin cliquez sur le ACTIVATE NOW bouton.

Afin de configurer votre construction, vous devez inclure un .drone.yml fichier à la racine de votre référentiel. Cette section fournit un bref aperçu du fichier de configuration et du processus de construction.

Exemple de configuration .drone.yml:

---
# Build configuration for https://www.tea-ci.org

build:
  image: teaci/msys32
  shell: mingw32
  pull: true
  commands:
    - ./configure
    - make
    - make check

Une fois activé, chaque demande de commit et d'extraction automatiquement envoyez un crochet de votre système de contrôle de version (par exemple, GitHub) à Tea CI. Ces crochets indiquent à Tea CI d’exécuter une nouvelle construction.

Lorsque Tea CI reçoit un crochet, il récupère le .drone.yml à partir de votre référentiel et l’utilise comme un modèle pour l’exécution de la construction. Pour les besoins de ce tutoriel, supposons que votre référentiel utilise la configuration suivante:

---
# Build configuration for https://www.tea-ci.org

build:
  image: teaci/msys32
  shell: mingw32
  pull: true
  commands:
    - ./configure
    - make
    - make check

Les crochets spécifient les détails de validation, y compris la branche et le hachage de validation. Tea CI sera automatiquement clonez et récupérez le commit dans l'espace de travail de construction:

$ git init
Initialized empty Git repository in /drone/src/github.com/TeaCI/xz/.git/
$ git remote add origin https://github.com/TeaCI/xz.git
$ git fetch --no-tags --depth=50 origin +refs/heads/master:
From https://github.com/TeaCI/xz
 * branch            master     -> FETCH_HEAD
 * (new branch)      master     -> origin/master
$ git reset --hard -q b3bd814618d82341dd22f2f59da3a1b467724eb0

Tea CI exécute votre construction dans une image éphémère de Docker. Cela signifie que vous n’avez pas besoin de configurer ou d’installer de dépendances de référentiels sur votre ordinateur hôte. Utilisez n’importe quelle image Docker valide dans n’importe quel registre Docker en tant qu’environnement de construction.

Exemple de configuration .drone.yml utilise l’image msys32 officielle de Tea CI:

---
# Build configuration for https://www.tea-ci.org

build:
  image: teaci/msys32

Le projet Tea CI gère plusieurs images officielles du menu fixe pour nos utilisateurs. Actuellement, nous supportons deux images: teaci/msys64 et teaci/msys32. Le support Cygwin est en cours.

Tea CI exécute votre construction en utilisant un shell personnalisé que vous avez spécifié.

Exemple de configuration .drone.yml utilise l'image msys32 officielle de Tea CI à l'aide du shell mingw32:

---
# Build configuration for https://www.tea-ci.org

build:
  image: teaci/msys32
  shell: mingw32

Nous supportons actuellement les combinaisons suivantes d'images et de coques:

image: teaci/msys32 avec shell: mingw32, pour cible i686-w64-mingw32.

image: teaci/msys64 avec shell: mingw64, pour cible x86_64-w64-mingw32.

image: teaci/msys32 avec shell: msys32, pour cible i686-pc-msys.

image: teaci/msys64 avec shell: msys64, pour cible x86_64-pc-msys.

image: teaci/cygwin32 avec shell: cygwin32, pour cible i686-pc-cygwin.

image: teaci/cygwin64 avec shell: cygwin64, pour cible x86_64-pc-cygwin.

Remarque: alors que les shell mingw32 et msys32 partagent la même image, les développeurs d'applications Win32 habituels n'ont peut-être besoin que du shell mingw32 pour créer des programmes «natifs». Le shell msys32 est principalement destiné aux responsables du package Msys2. Le shell cygwin32 est principalement destiné aux mainteneurs de paquets Cygwin.

Utilisez le pull attribut pour indiquer à Tea CI de toujours extraire la dernière image Docker. Cela aide à garantir que vous testez toujours votre code par rapport à la dernière image. Nous vous recommandons de toujours utiliser pull: true avec notre image officielle de Docker comme teaci / msys32 et teaci / cygwin32.

---
# Build configuration for https://www.tea-ci.org

build:
  image: teaci/msys32
  pull: true
  shell: mingw32

Tea CI a précédemment cloné votre code source dans l'espace de travail de génération. L'espace de travail de génération est monté dans votre conteneur Docker au moment de l'exécution en tant que volume. Cela signifie que votre code est cloné à l'extérieur du conteneur de construction, mais vos commandes de construction sont exécutées à l'intérieur du conteneur de construction.

Tea CI exécute les commandes bash suivantes dans votre conteneur de construction:

---
# Build configuration for https://www.tea-ci.org

build:
  image: teaci/msys32
  pull: true
  shell: mingw32
  commands:
    - ./configure
    - make
    - make check

Tea CI ne prend pas directement en charge le shell cmd Windows, cependant, Msys2 a un wrapper cmd. Utilisation cmd /c "command arg1 arg2" dans le shell Msys2:

---
# Build configuration for https://www.tea-ci.org

build:
  image: teaci/msys32
  shell: mingw32
  commands:
    - cmd /c dir
    - cmd /c "echo %WINDIR%"
    - ./configure
    - make
    - make check

Tea CI prend également en charge la construction de Linux, il suffit de shell: sh dans .drone.yml:

---
# Build configuration for https://www.tea-ci.org

build:
  image: teaci/msys32
  shell: sh
  commands:
    - ./configure
    - make
    - make check

Vous pouvez également essayer de jouer avec la construction de la matrice afin de construire les binaires Linux et Windows dans Tea CI.

teaci/msys32 et teaci/msys64 Msys2 pré-installé sur les images, vous pouvez installer des milliers de bibliothèques Open Source à l’aide de pacman.

---
# Build configuration for https://www.tea-ci.org
# Tea CI is a fork of Drone CI with Cygwin/Msys2 support
# Feel free to share Tea CI to more open source developers
# http://docs.tea-ci.org/usage/overview/
# Please add your project to https://github.com/TeaCI/tea-ci/wiki/Msys2-on-Wine#use-msys2-in-tea-ci

build:
  image: teaci/msys32
  pull: true
  shell: mingw32
  commands:
    - pacman -S --needed --noconfirm --noprogressbar mingw-w64-i686-libpng
    - ./configure
    - make
    - make check

Si vous utilisez shell: sh pour la construction de Linux, il vous faut apt-get plutôt que pacman Pour installer des dépendances car teaci / msys32 est basé sur l'image du menu fixe Ubuntu, ce qui peut être gênant pour la configuration de la construction de la matrice, mais il est de toute façon faisable. Si vous n'aimez pas teaci / msys32, vous pouvez également utiliser une autre image de https://hub.docker.com/explore/ ou créer votre propre image. Cependant, la prise en charge de la matrice est incomplète jusqu'à la mise à niveau de Tea CI vers Drone 0.5: http://readme.drone.io/0.5/usage/matrix/. En conséquence, il n'existe actuellement aucun moyen de contrôler image et shell en tant que groupe dans la construction de la matrice.

Vous pouvez utiliser la construction de matrice pour compiler à la fois les fichiers binaires 32 bits et 64 bits. Reportez-vous à la documentation pour plus de détails.

---
# Build configuration for https://www.tea-ci.org
# Tea CI is a fork of Drone CI with Cygwin/Msys2 support
# Feel free to share Tea CI to more open source developers
# http://docs.tea-ci.org/usage/overview/
# Please add your project to https://github.com/TeaCI/tea-ci/wiki/Msys2-on-Wine#use-msys2-in-tea-ci

build:
  image: teaci/msys$$arch
  pull: true
  shell: mingw$$arch
  commands:
    - if ( $$arch = 32 ); then target=i686; fi
    - if ( $$arch = 64 ); then target=x86_64; fi
    - pacman -S --needed --noconfirm --noprogressbar mingw-w64-${target}-pkg-config
    - ./autogen.sh
    - ./configure
    - make
    - make check

matrix:
  arch:
    - 64
    - 32

Exemple de code pour obtenir un démarrage rapide de Tea CI. Envoyez une demande de tirage sur notre terrain de jeu pour voir comment une demande de tir déclenchera une construction de Tea CI. Vous pouvez également contribuer à davantage de référentiels de démonstration.

Statut de construction

Veuillez utiliser le forum de discussion de la communauté pour obtenir de l'aide.
Créez un problème sur github repo si vous avez trouvé des bogues. Si vous avez besoin de dépasser votre limite de temps de construction, veuillez laisser un message privé sur gitter à @fracting.

Nous serions ravis de connaître votre avis

      Laisser un commentaire