From c7285d53a650bb52f8bfe8f07476660f5c741280 Mon Sep 17 00:00:00 2001 From: Oleg <40476427+amfet42@users.noreply.github.com> Date: Wed, 21 Feb 2024 18:52:11 +0300 Subject: [PATCH] add release workflow --- .github/workflows/push_pr.yml | 74 +++++++++++++++++++ .idea/.gitignore | 8 ++ .idea/curve-xchain-factory.iml | 8 ++ .idea/inspectionProfiles/Project_Default.xml | 12 +++ .../inspectionProfiles/profiles_settings.xml | 6 ++ .idea/misc.xml | 4 + .idea/modules.xml | 8 ++ .idea/vcs.xml | 6 ++ 8 files changed, 126 insertions(+) create mode 100644 .github/workflows/push_pr.yml create mode 100644 .idea/.gitignore create mode 100644 .idea/curve-xchain-factory.iml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/inspectionProfiles/profiles_settings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml 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/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/curve-xchain-factory.iml b/.idea/curve-xchain-factory.iml new file mode 100644 index 0000000..d0876a7 --- /dev/null +++ b/.idea/curve-xchain-factory.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..f2ab48a --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..f9ece18 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..a899ff4 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file