-
Notifications
You must be signed in to change notification settings - Fork 40
95 lines (87 loc) · 4.2 KB
/
2_bump_versions.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
name: 2. Bump versions
run-name: 2. Bump versions - CLI ${{ inputs.version }} from ${{ inputs.npm_channel }}
on:
workflow_dispatch:
inputs:
npm_channel:
description: 'Prisma CLI NPM Channel'
required: true
version:
description: 'New Prisma CLI version in that channel'
required: true
env:
ENVIRONMENT: ${{ secrets.ENVIRONMENT }}
PRISMA_TELEMETRY_INFORMATION: 'language-tools 2_bump_versions.yml'
jobs:
bump:
runs-on: ubuntu-latest
timeout-minutes: 7
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.PRISMA_BOT_TOKEN }}
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install Dependencies
run: npm install && npm run bootstrap
- name: Setup Git
run: |
sh scripts/set_git_credentials.sh
- name: Print inputs
run: |
echo ${{github.event.inputs.npm_channel}}
echo ${{github.event.inputs.version}}
- name: Update versions file in scripts folder
run: |
echo "${{ github.event.inputs.version }}" >scripts/versions/prisma_${{ github.event.inputs.npm_channel }}
- name: Update next extension version in scripts folder and output for later use
id: update # Used to access the calculated next extension version in later steps
run: node scripts/bump_extension_version.js ${{ github.event.inputs.npm_channel }}
- name: Commit and Push
run: |
sh scripts/commit_and_push.sh "[skip ci] bump Prisma CLI ${{ github.event.inputs.npm_channel }} version to ${{ github.event.inputs.version }} and extension version to ${{ steps.update.outputs.next_extension_version }} in scripts."
- name: Switch branch
id: setup_branch
run: |
sh scripts/setup_branch.sh ${{ github.event.inputs.npm_channel }}
- name: Check for minor or major release
id: is_minor_or_major
run: |
node scripts/is_minor_or_major_release.js ${{ github.event.inputs.npm_channel }}
- name: Reset on 'main' branch if minor or major release
if: ${{steps.is_minor_or_major.outputs.is_minor_or_major_release}}
run: |
git reset --hard main
git push --force origin stable
- name: Update Prisma CLI version and VS Code extension version
run: |
node scripts/update_package_json_files.js ${{ github.event.inputs.npm_channel }} ${{ steps.update.outputs.next_extension_version }} ${{ github.event.inputs.version }}
- name: Install Dependencies to update lock file
run: npm install && npm run bootstrap
- name: Push to branch
run: |
sh scripts/commit_and_push.sh "[skip ci] bump extension version to ${{ steps.update.outputs.next_extension_version }} in package.json" ${{ steps.setup_branch.outputs.branch}} ${{ steps.setup_branch.outputs.new_branch }}
- name: Trigger next workflow for Language Server tests
uses: benc-uk/workflow-dispatch@v1
with:
workflow: 3. Test Language Server and publish
token: ${{ secrets.PRISMA_BOT_TOKEN }}
inputs: '{ "npm_channel": "${{ github.event.inputs.npm_channel }}", "extension_version": "${{ steps.update.outputs.next_extension_version }}", "branch": "${{steps.setup_branch.outputs.branch}}", "trigger_reason": "Prisma CLI version ${{github.event.inputs.version}}" }'
- name: 'Set current job url in SLACK_FOOTER env var'
if: ${{ failure() }}
run: echo "SLACK_FOOTER=<$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID|Click here to go to the job logs>" >> $GITHUB_ENV
- name: Slack Notification on Failure
if: ${{ failure() }}
uses: rtCamp/[email protected]
env:
SLACK_TITLE: '2. Bumping versions failed :x:'
SLACK_COLOR: '#FF0000'
SLACK_MESSAGE: '${{github.event.inputs.version}} - On new Prisma CLI version ${{github.event.inputs.version}}'
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_FAILURES }}
SLACK_CHANNEL: feed-language-tools-failures
SLACK_USERNAME: Prismo
SLACK_ICON_EMOJI: ':boom:'
SLACK_MSG_AUTHOR: prisma-bot