-
Notifications
You must be signed in to change notification settings - Fork 234
149 lines (125 loc) · 5.53 KB
/
release-artifacts.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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
name: Release artifacts
on:
push:
tags:
- "*"
workflow_dispatch:
inputs:
tag_version:
description: 'Tag version:'
required: true
jobs:
define-release-version:
name: Define Release Version
runs-on: ubuntu-24.04
outputs:
version: ${{ steps.set-tag-version.outputs.tag_version }}
steps:
- name: Define release version
id: set-tag-version
run: |
if [[ -n "$GITHUB_REF" && "$GITHUB_REF" == refs/tags/* ]]; then
echo "tag_version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
elif [[ -n "$INPUT_TAG_VERSION" ]]; then
echo "tag_version=$INPUT_TAG_VERSION" >> $GITHUB_OUTPUT
else
echo "No tag version found."
exit 1
fi
env:
INPUT_TAG_VERSION: ${{ github.event.inputs.tag_version }}
release-artifacts-docker:
name: Release Artifacts Docker
runs-on: ubuntu-24.04
needs: define-release-version
steps:
- name: Check out code
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
ref: ${{ needs.define-release-version.outputs.version }}
- name: Set up QEMU
uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@0d103c3126aa41d772a8362f6aa67afac040f80c # v3.1.0
- name: Login to Docker Hub Registry 🔢
run: echo ${{ secrets.DOCKER_HUB_PASSWORD }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin || true
- name: Build and Push Docker image 📦
run: |
IMAGE_NAME=rasa/rasa-sdk
IMAGE_TAG=$IMAGE_TAG
make build-and-push-multi-platform-docker
env:
IMAGE_TAG: ${{ needs.define-release-version.outputs.version }}
release-artifacts-pypi:
name: Release Artifacts PyPI
runs-on: ubuntu-24.04
needs: define-release-version
steps:
- name: Checkout git repository 🕝
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
ref: ${{ needs.define-release-version.outputs.version }}
- name: Set up Python 3.10 🐍
uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435
with:
python-version: '3.10'
- name: Read Poetry Version 🔢
run: |
echo "POETRY_VERSION=$(scripts/poetry-version.sh)" >> $GITHUB_ENV
shell: bash
- name: Install poetry 🦄
uses: Gr1N/setup-poetry@15821dc8a61bc630db542ae4baf6a7c19a994844
with:
poetry-version: ${{ env.POETRY_VERSION }}
- name: Build ⚒️ Distributions
run: poetry build
- name: Publish to PyPI 📦
uses: pypa/gh-action-pypi-publish@bea5cda687c2b79989126d589ef4411bedce0195
with:
user: __token__
password: ${{ secrets.PYPI_TOKEN }}
skip_existing: true
release-atifacts-publish-release:
name: Release Artifacts Publish Release
runs-on: ubuntu-24.04
needs: [define-release-version, release-artifacts-docker, release-artifacts-pypi]
steps:
- name: Check out code
if: success()
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
ref: ${{ needs.define-release-version.outputs.version }}
- name: Publish Release Notes 🗞
if: success()
env:
GITHUB_TAG: ${{ needs.define-release-version.outputs.version }}
GITHUB_REPO_SLUG: ${{ github.repository }}
GITHUB_TOKEN: ${{ secrets.RASASDK_GITHUB_TOKEN }}
run: |
GITHUB_TAG=$GITHUB_TAG
pip install -U github3.py pep440-version-utils
python3 scripts/publish_gh_release_notes.py
release-artifact-slack-notifications:
name: Release Analytics Artifact Slack Notifications
runs-on: ubuntu-24.04
needs: [define-release-version, release-artifacts-docker, release-artifacts-pypi, release-atifacts-publish-release]
if: always() # Ensures this job runs regardless of the result of previous jobs
steps:
- name: Notify Slack of successful release 💬
if: ${{ needs.release-artifacts-docker.result == 'success' && needs.release-artifacts-pypi.result == 'success' }}
uses: slackapi/slack-github-action@6c661ce58804a1a20f6dc5fbee7f0381b469e001 #v 1.25.0
with:
# Send notification to #release slack channel
channel-id: "C024Z61K9QU"
slack-message: ":rocket: New *Rasa SDK* version `${{ needs.define-release-version.outputs.version }}` has been released! More information can be found <https://github.com/RasaHQ/rasa-sdk/releases/tag/${{ needs.define-release-version.outputs.version }}|here>."
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
- name: Notify Slack of unsuccessful release ⛔️
if: ${{ needs.release-artifacts-docker.result == 'success' && needs.release-artifacts-pypi.result == 'success' }}
uses: slackapi/slack-github-action@6c661ce58804a1a20f6dc5fbee7f0381b469e001 #v 1.25.0
with:
# Send notification to #devtribe slack channel
channel-id: "C061J0LGHU0"
slack-message: ":broken_heart: *Rasa SDK* release version `${{ needs.define-release-version.outputs.version }}` has failed! More information can be found <https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}|here>."
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}