Un projet récent sur lequel je travaille dispose d’une branche, qui, lorsque celle-ci reçoit des modifications, déclenche un événement dans notre système de déploiement continue, afin de déployer le contenu de la branche sur notre environnement de développement. Avec l’augmentation des effectifs de développeurs sur le projet, et pour essayer de garder un environnement de développement le plus à jour possible et faciliter le test des nouvelles fonctionnalités ou des corrections, je me suis penché sur la question de la fusion automatique de branches avec les Github Actions.
Voici un exemple de configuration fonctionnelle:
name: auto-merge on: workflow_dispatch: schedule: # * is a special character in YAML so you have to quote this string - cron: '0 7 * * 1-5' jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: ref: master fetch-depth: 0 - name: Merge on dev-env run: | git config user.name github-actions git config user.email github-actions@github.com git config --global pull.ff only git checkout dev-env git pull git merge master git push
Dans cet exemple, tous les jours du lundi au vendredi à 7h, la branche master
sera fusionnée dans la branche dev-env
et poussée dans le dépôt distant, déclenchant ainsi le processus de déploiement automatisé.