name: CI/CD Pipeline run-name: ${{ gitea.event.head_commit.message }} on: push: branches: - master jobs: test: runs-on: debian-latest steps: - name: Show Debian version run: cat /etc/os-release - name: Test Deployment run: echo "Deployment test" deploy: runs-on: self-hosted needs: test steps: - name: Custom Checkout env: ANSIBLE_VAULT_PASSWORD: ${{ secrets.ANSIBLE_VAULT_PASSWORD }} SPEEDBB_REPO: ${{ vars.SPEEDBB_REPO }} PROD_BASE_DIR: ${{ vars.PROD_BASE_DIR }} ANSIBLE_POSIX_ACL: false run: | git clone --quiet --no-checkout --depth=1 --branch=${{ gitea.ref_name }} ${{ vars.SPEEDBB_REPO }} ./repo cd repo git config core.sparseCheckout true echo "ansible/" > .git/info/sparse-checkout git checkout HEAD ls -la cd ansible pwd ls -la cat hosts.ini echo "$ANSIBLE_VAULT_PASSWORD" > .vault_pass.txt ansible-playbook --vault-password-file .vault_pass.txt deploy-to-prod.yaml rm .vault_pass.txt promote_stable: runs-on: self-hosted needs: deploy steps: - name: Promote master to stable env: SPEEDBB_REPO: ${{ vars.SPEEDBB_REPO }} GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} GITEA_ACTOR: ${{ gitea.actor }} run: | set -e REPO="$SPEEDBB_REPO" if [ -n "$GITEA_TOKEN" ]; then REPO=$(echo "$SPEEDBB_REPO" | sed "s#https://#https://${GITEA_ACTOR}:${GITEA_TOKEN}@#") fi git clone --quiet --depth=1 --branch=stable "$REPO" repo cd repo git fetch origin master git merge --ff-only FETCH_HEAD git push origin stable