From eeb617d2e8ef9df8eb0d3cd04b2fa4d0349befdd Mon Sep 17 00:00:00 2001 From: Oleg <40476427+amfet42@users.noreply.github.com> Date: Wed, 21 Feb 2024 19:34:22 +0300 Subject: [PATCH] add release workflow --- .github/workflows/push_pr.yml | 74 +++++++++++++++++++++++++++++++++++ .gitignore | 2 + 2 files changed, 76 insertions(+) create mode 100644 .github/workflows/push_pr.yml diff --git a/.github/workflows/push_pr.yml b/.github/workflows/push_pr.yml new file mode 100644 index 0000000..939e203 --- /dev/null +++ b/.github/workflows/push_pr.yml @@ -0,0 +1,74 @@ +on: + release: + types: [ created ] + +name: on-creating-new-tag + +jobs: + send-pull-requests: + runs-on: ubuntu-latest + if: startsWith(github.ref, 'refs/tags/') + steps: + - name: Get production version from tag + id: get_version + run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV + + - name: Checkout to repo + uses: actions/checkout@v3 + with: + token: ${{ secrets.ACCESS_TOKEN }} + + - name: Create release file + run: | + TITLE='${{ github.event.release.name }}' + NOTES='${{ github.event.release.body }}' + DATE=$(date '+%d-%m-%Y') + mkdir -p deployments + echo $NOTES >> "deployments/release-$TITLE-$DATE.txt" + + git config user.email "curvefi@users.noreply.github.com" + git config user.name "curvefi" + git remote update + git fetch + git checkout master + git add deployments + git commit -m "chore: add release file - $TITLE" + git push + + - name: Checkout to other repo + uses: actions/checkout@v3 + with: + repository: curvefi/curve-js + token: ${{ secrets.ACCESS_TOKEN }} + + - name: Send pull-request to curve-js + run: | + TAG=${{ env.RELEASE_VERSION }} + ORG="curvefi" + CURRENT_REPOSITORY="$ORG/curve-xchain-factory" + REPOSITORY="$ORG/curve-js" + FOLDER="bin/$REPOSITORY" + BRANCH_NAME="deployment-$CURRENT_REPOSITORY-$TAG" + + # Setup the committers identity. + git config user.email "Curvefi@users.noreply.github.com" + git config user.name "Curvefi" + + # Create a new feature branch for the changes. + git checkout -b $BRANCH_NAME + + # Store the PAT in a file that can be accessed by the GitHub CLI. + echo "${{ secrets.ACCESS_TOKEN }}" > token.txt + + # Create an empty commit for PR + git commit --allow-empty -m "deployment from $CURRENT_REPOSITORY - $TAG" + git push -u origin $BRANCH_NAME + + # Authorize GitHub CLI for the current repository and + # create a pull-requests containing the updates. + gh auth login --with-token < token.txt + gh pr create \ + --body "Link to release: https://github.com/$CURRENT_REPOSITORY/releases/tag/$TAG" \ + --title "Deployment from $CURRENT_REPOSITORY - $TAG" \ + --head "$BRANCH_NAME" \ + --base "master" diff --git a/.gitignore b/.gitignore index e6ed54d..e9afc29 100644 --- a/.gitignore +++ b/.gitignore @@ -131,3 +131,5 @@ dmypy.json # eth-brownie .history reports/ + +.idea/ \ No newline at end of file