Skip to content

ci: fix the build action workflow (#146) #4

ci: fix the build action workflow (#146)

ci: fix the build action workflow (#146) #4

name: Deploy Flutter SDK
on:
push:
branches: [main]
permissions:
contents: write
issues: write
pull-requests: write
jobs:
deploy-git-tag:
name: Deploy git tag
runs-on: ubuntu-latest
outputs:
new_release_published: ${{ steps.semantic-release.outputs.new_release_published }}
new_release_version: ${{ steps.semantic-release.outputs.new_release_version }}
steps:
- uses: actions/checkout@v4
- name: Install sd CLI
uses: levibostian/setup-sd@add-file-extension
- name: Deploy git tag via semantic-release
uses: cycjimmy/semantic-release-action@v4
id: semantic-release
with:
semantic_version: latest
extra_plugins: |
conventional-changelog-conventionalcommits
@semantic-release/github
@semantic-release/exec
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Notify team of git tag creation
uses: slackapi/[email protected]
if: steps.semantic-release.outputs.new_release_published == 'true'
with:
payload: |
{
"text": "Flutter SDK git tag created",
"username": "Flutter deployment bot",
"icon_url": "https://img.icons8.com/color/512/flutter.png",
"channel": "#mobile-deployments",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Flutter* SDK git tag created successfully! (deployment step 1 of 2)"
}
},
{
"type": "divider"
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Version ${{ steps.semantic-release.outputs.new_release_version }}*\n\nFlutter SDK deployment progress:\n ~1. <https://github.com/${{github.repository}}/releases/tag/${{steps.semantic-release.outputs.new_release_version}}|create git tag>~\n2. deploy to pub.dev\n\n"
}
}
]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
- name: Send Velocity Deployment
uses: codeclimate/[email protected]
if: steps.semantic-release.outputs.new_release_published == 'true'
with:
token: ${{ secrets.VELOCITY_DEPLOYMENT_TOKEN }}
version: ${{ steps.semantic-release.outputs.new_release_version }}
environment: production
- name: Notify team of failure
uses: slackapi/[email protected]
if: ${{ failure() }}
with:
payload: |
{
"text": "Flutter SDK deployment failure",
"username": "Flutter deployment bot",
"icon_url": "https://img.icons8.com/color/512/flutter.png",
"channel": "#mobile-deployments",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Flutter* SDK deployment :warning: failure :warning:"
}
},
{
"type": "divider"
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Flutter SDK failed deployment during step *create git tag*. View <https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}|CI server logs> to learn why and fix the issue. <https://github.com/customerio/mobile/blob/main/GIT-WORKFLOW.md|Learn more about the deployment process and how to fix errors>."
}
}
]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
deploy-to-pub-dev:
name: Deploy to pub.dev
needs: [deploy-git-tag]
if: needs.deploy-git-tag.outputs.new_release_published == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ needs.deploy-git-tag.outputs.new_release_version }}
- uses: ./.github/actions/setup-flutter
- name: Publish to pub.dev
uses: k-paxian/[email protected]
with:
credentialJson: ${{ secrets.CREDENTIAL_JSON }}
flutter: true
- name: Notify team of successful deployment
uses: slackapi/[email protected]
if: ${{ success() }}
with:
payload: |
{
"text": "Flutter SDK deployed to pub.dev",
"username": "Flutter deployment bot",
"icon_url": "https://img.icons8.com/color/512/flutter.png",
"channel": "#mobile-deployments",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Flutter* SDK deployed to pub.dev! (deployment step 2 of 2)"
}
},
{
"type": "divider"
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Version ${{ needs.deploy-git-tag.outputs.new_release_version }}*\n\nFlutter SDK deployment progress:\n ~1. <https://github.com/${{github.repository}}/releases/tag/${{ needs.deploy-git-tag.outputs.new_release_version }}|create git tag>~\n~2. deploy to pub.dev~\n\n"
}
}
]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
- name: Notify team of failure
uses: slackapi/[email protected]
if: ${{ failure() }}
with:
payload: |
{
"text": "Flutter SDK deployment failure",
"username": "Flutter deployment bot",
"icon_url": "https://img.icons8.com/color/512/flutter.png",
"channel": "#mobile-deployments",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Flutter* SDK deployment :warning: failure :warning:"
}
},
{
"type": "divider"
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Flutter SDK failed deployment during step *deploy to pub.dev*. View <https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}|CI server logs> to learn why and fix the issue. <https://github.com/customerio/mobile/blob/main/GIT-WORKFLOW.md|Learn more about the deployment process and how to fix errors>."
}
}
]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK