Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release branch mech #81

Merged
merged 1 commit into from
Jun 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions .github/workflows/create_release_branch.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Create Release Branch
on:
schedule:
# Run every Friday at 11:30 AM UTC (5:00 PM IST)
- cron: '30 11 * * FRI'
jobs:
create-release-branch:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: master
- name: Get Release Branch Name
run: |
echo "release_branch=qbd_api_release_$(date +%Y_%m_%d)" >> $GITHUB_ENV
echo "last_release_branch=qbd_api_release_$(date -d 'last friday' +%Y_%m_%d)" >> $GITHUB_ENV
- name: Check if release branch exists
run: |
if git ls-remote --exit-code --heads origin ${{env.release_branch}}; then
echo "branch_exists=true" >> $GITHUB_ENV
else
echo "branch_exists=false" >> $GITHUB_ENV
fi
- name: Create release branch
if: ${{env.branch_exists == 'false'}}
run: |
git checkout -b ${{env.release_branch}}
git push origin ${{env.release_branch}}
echo "message=Branch `${{env.release_branch}}` created successfully." >> $GITHUB_ENV
- name: Branch already exists
if: ${{env.branch_exists == 'true'}}
run: echo "message=Branch `${{env.release_branch}}` already exists." >> $GITHUB_ENV
- name: Send message on Slack
uses: archive/[email protected]
id: notify
with:
# Send message to #integrations slack channel
slack-bot-user-oauth-access-token: ${{ secrets.SLACK_BOT_INTEGRATIONS_OAUTH_ACCESS_TOKEN }}
slack-channel: C074E8V8EL8
slack-text: "${{env.message}} \nCheck diff here: https://github.com/fylein/fyle-qbd-api/compare/${{env.last_release_branch}}...${{env.release_branch}}"
56 changes: 56 additions & 0 deletions .github/workflows/hulk_deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Deploy to Hulk

on:
create:
branches:
- 'qbd_api_release_*'
push:
branches:
- 'qbd_api_release_*'

jobs:
hulk_deploy:
runs-on: ubuntu-latest
environment: Staging
steps:
- uses: actions/checkout@v2

- name: Push to dockerhub
uses: fylein/docker-release-action@master
id: generate-and-push-tag
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
IMAGE_NAME: fyle_qbd-api

- name: Install kustomize
run: |
curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash
sudo mv kustomize /usr/local/bin/

- name: Clone another repository
uses: actions/checkout@v2
with:
repository: ${{ vars.STAGING_DEPLOY_REPO }}
ref: master
path: ${{ vars.STAGING_DEPLOY_REPO }}
persist-credentials: false
token: ${{ secrets.DEPLOY_GIT_ACCESS_TOKEN }}

- name: Update Image Tag
run: |
NEW_TAG=${{ steps.generate-and-push-tag.outputs.new_tag }}
cd ${{ vars.STAGING_DEPLOY_REPO }}/${{ vars.STAGING_DEPLOY_DIR }}/hulk/integrations
kustomize edit set image docker.io/${{ secrets.DOCKERHUB_USERNAME }}/fyle_in-api=docker.io/${{ secrets.DOCKERHUB_USERNAME }}/fyle_qbd-api:$NEW_TAG

- name: Commit and push changes
run: |
NEW_TAG=${{ steps.generate-and-push-tag.outputs.new_tag }}
cd ${{ vars.STAGING_DEPLOY_REPO }}
git config --global user.email "[email protected]"
git config --global user.name "GitHub Actions"
git add .
git commit -m "Deployed fyle_qbd-api:$NEW_TAG"
git remote set-url origin https://x-access-token:${{ secrets.DEPLOY_GIT_ACCESS_TOKEN }}@github.com/${{ vars.STAGING_DEPLOY_REPO }}
git pull origin master
git push origin master
5 changes: 3 additions & 2 deletions .github/workflows/production_deployment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ jobs:
continue-on-error: true
- name: push to dockerhub
uses: fylein/docker-release-action@master
id: generate-and-push-tag
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
Expand All @@ -35,7 +36,7 @@ jobs:

- name: Update Image Tag
run: |
NEW_TAG="v$(git rev-parse --short HEAD)"
NEW_TAG=${{ steps.generate-and-push-tag.outputs.new_tag }}
cd ${{ vars.PROD_DEPLOY_REPO }}/${{ vars.PROD_US1_DEPLOY_DIR }}/integrations
kustomize edit set image docker.io/${{ secrets.DOCKERHUB_USERNAME }}/fyle_qbd-api=docker.io/${{ secrets.DOCKERHUB_USERNAME }}/fyle_qbd-api:$NEW_TAG

Expand All @@ -45,7 +46,7 @@ jobs:
git config --global user.email "[email protected]"
git config --global user.name "GitHub Actions"
git add .
git commit -m "Update image tag"
git commit -m "Deployed fyle_qbd-api:$NEW_TAG to prod"
git remote set-url origin https://x-access-token:${{ secrets.DEPLOY_GIT_ACCESS_TOKEN }}@github.com/${{ vars.PROD_DEPLOY_REPO }}
git pull origin master
git push origin master
Expand Down
Loading