Skip to content

Instantly share code, notes, and snippets.

@Opencontent
Last active August 21, 2019 16:20
Show Gist options
  • Save Opencontent/e02091221971c120317233e927e64951 to your computer and use it in GitHub Desktop.
Save Opencontent/e02091221971c120317233e927e64951 to your computer and use it in GitHub Desktop.

Automatismo per pubblicare una release

Dato un repo github che contiene solamente il composer delle dipendenze di altri repo, l'obiettivo è esporre un changelog delle modifiche di tutti i repo.

Prerequisiti

Installare composer-lock-diff (fork di Opencontent)

git clone https://github.com/Opencontent/composer-lock-diff.git
cd composer-lock-diff
git checkout auto_changelog

mv composer-lock-diff /usr/local/bin/composer-lock-diff

Inserire in .bash_profile il token github

export GITHUB_TOKEN="{token}"

Installare release-it

vedi https://github.com/release-it/release-it

File .release-it.json

{
  "github": {
    "release": true,
    "releaseNotes": "composer-lock-diff --from=HEAD^:composer.lock --to=HEAD:composer.lock --md --changelog"
  }
}

Repo di esempio

mkdir test-release
cd test-release
composer require psr/log
vim .release-it.json
echo "# test-release" >> README.md

git init
git add --all
git commit -m "first commit"
git remote add origin https://github.com/lrealdi/test-release.git
git push -u origin master

Prima release

Creo la prima release con

release-it --github.releaseNotes='echo "Prima release"'

perché ancora non esiste un composer.lock nella storia di git

Dalla seconda release in poi...

Correggo qualche dipendenza ad esempio composer require psr/http-message

Eseguo se serve composer update

Commit git commit -a in scrittura del messggio di commit in vim scrivo: :r!composer-lock-diff --text

Push git push

Ora creo una nuova release

release-it

I risultati in https://github.com/lrealdi/test-release/releases

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment