when: - event: ["push", "manual"] branch: ["main"] engine: nixery dependencies: nixpkgs: - semver-tool - openssh - less steps: - name: Setup user command: | echo "root:x:0:0::$HOME:/usr/bin/bash" >> /etc/passwd - name: Setup SSH command: | mkdir -p $HOME/.ssh echo "-----BEGIN OPENSSH PRIVATE KEY-----" > $HOME/.ssh/privkey printf $SSH_KEY >> $HOME/.ssh/privkey echo "-----END OPENSSH PRIVATE KEY-----" >> $HOME/.ssh/privkey chmod 600 $HOME/.ssh/privkey ssh-keyscan -t rsa tangled.org >> $HOME/.ssh/known_hosts - name: Setup SSH repo command: | git config --global user.email "evann.regnault@pm.me" git config --global user.name "Evann Regnault" git fetch git checkout main git pull --tags URL=$(git remote get-url origin) REPO=${URL#*//*/} git remote set-url origin "git@tangled.org:"$REPO - name: Next tag command: | TAG=$(git tag | tac | head -1) if [ "$TAG" == "" ]; then TAG="0.0.0" fi COMMIT=$(git log -1 --pretty=%B) case "${COMMIT^^}" in MAJOR*) TYPE="major" ;; MINOR*) TYPE="minor" ;; PATCH*) TYPE="patch" ;; *) TYPE="" ;; esac if [ $TYPE ]; then semver bump $TYPE $TAG > tag fi - name: Push new tag environment: GIT_SSH_COMMAND: "ssh -i $HOME/.ssh/privkey -o IdentitiesOnly=yes" command: | if [ -f "tag" ]; then TAG=$(cat tag) git tag -a $TAG -m "Release $TAG" git push --tags fi