Skip to content

Commit 671d8ad

Browse files
committed
👷(circle) add release job to CI
As done in openfun/potsie, adding a new `release` job to release a version to Github from a tag.
1 parent bc4f1e0 commit 671d8ad

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

.circleci/config.yml

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -483,6 +483,45 @@ jobs:
483483
git config --global user.name "FUN MOOC Bot"
484484
~/.local/bin/mkdocs gh-deploy
485485
486+
# Make a new github release
487+
release:
488+
docker:
489+
- image: cimg/base:current
490+
auth:
491+
username: $DOCKER_HUB_USER
492+
password: $DOCKER_HUB_PASSWORD
493+
working_directory: ~/fun
494+
steps:
495+
- checkout
496+
- *docker-login
497+
- attach_workspace:
498+
at: ~/fun
499+
- run:
500+
name: Install gh CLI
501+
command: |
502+
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | \
503+
sudo gpg --dearmor -o /usr/share/keyrings/githubcli-archive-keyring.gpg
504+
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | \
505+
sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
506+
sudo apt update
507+
sudo apt install gh
508+
- run:
509+
name: Define release reference
510+
command: |
511+
echo 'RELEASE=$(echo "${CIRCLE_TAG}")' >> $BASH_ENV
512+
source $BASH_ENV
513+
- run:
514+
name: Get release changes
515+
command: |
516+
tag="${RELEASE/v/}" ;
517+
sed -E -n "/^## \[${tag}\]/,/^##\ /{/^## \[${tag}\]/d ;/^##\ /d; p}" CHANGELOG.md > release.md
518+
- run:
519+
name: Create release on GitHub
520+
command: |
521+
gh config set prompt disabled
522+
if ! gh release list | grep "${RELEASE}"; then
523+
gh release create -F release.md -t "${RELEASE/v/}" "${RELEASE}";
524+
fi
486525
workflows:
487526
version: 2
488527

@@ -623,3 +662,14 @@ workflows:
623662
only: master
624663
tags:
625664
only: /.*/
665+
666+
# Release
667+
- release:
668+
requires:
669+
- tray
670+
- package
671+
filters:
672+
branches:
673+
only: master
674+
tags:
675+
only: /^v.*/

0 commit comments

Comments
 (0)