Index Latest Release #44
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Index Latest Release | |
on: | |
workflow_dispatch: | |
inputs: | |
release_version: | |
type: string | |
description: Which release version to index (type v1.0.6 for example) | |
default: "latest" | |
select_index: | |
type: choice | |
description: Index as test or live | |
options: | |
- Test | |
- Live | |
set_as_latest: | |
type: boolean | |
description: Promote selected version to latest? (Only applied if index is set to "live") | |
default: false | |
notify_sdk: | |
type: boolean | |
description: Notify SDK | |
default: false | |
jobs: | |
index: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- name: Install Dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install aiohttp | |
pip install aiofiles | |
pip install requests | |
pip install py7zr | |
pip install chardet | |
pip install elasticsearch==7.13.4 | |
sudo apt-get install p7zip-full | |
- name: Run Index Script | |
env: | |
ES_HOST: ${{ secrets.ES_HOST }} | |
ES_USER: ${{ secrets.ES_USER }} | |
ES_PASSWORD: ${{ secrets.ES_PASSWORD }} | |
MIKROE_NECTO_AWS: ${{ secrets.MIKROE_NECTO_AWS }} | |
run: | | |
if [[ ${{ github.event.inputs.select_index }} == "Live" ]]; then | |
echo "Indexing to Live." | |
python -u scripts/index.py ${{ github.repository }} ${{ secrets.GITHUB_TOKEN }} ${{ github.event.inputs.release_version }} ${{ secrets.ES_INDEX_LIVE }} ${{ github.event.inputs.set_as_latest }} | |
else | |
echo "Indexing to Test." | |
if [[ ${{ github.event.inputs.set_as_latest }} ]]; then | |
echo "Promote to latest requested, but ignored. Only available for LIVE updates." | |
fi | |
python -u scripts/index.py ${{ github.repository }} ${{ secrets.GITHUB_TOKEN }} ${{ github.event.inputs.release_version }} ${{ secrets.ES_INDEX_TEST }} | |
fi | |
- name: Trigger database update in Core repo | |
run: | | |
# Set the required variables | |
repo_owner="MikroElektronika" | |
repo_name="core_packages" | |
event_type="trigger-workflow" | |
version="${{ github.event.inputs.release_version }}" | |
if [[ ${{ github.event.inputs.select_index }} == "Live" ]]; then | |
index="Live" | |
else | |
index="Test" | |
fi | |
curl -L \ | |
-X POST \ | |
-H "Accept: application/vnd.github+json" \ | |
-H "Authorization: Bearer ${{ secrets.MIKROE_ACTIONS_KEY }}" \ | |
-H "X-GitHub-Api-Version: 2022-11-28" \ | |
https://api.github.com/repos/$repo_owner/$repo_name/dispatches \ | |
-d "{\"event_type\": \"$event_type\", \"client_payload\": {\"version\": \"$version\", \"index\": \"$index\", \"unit\": false, \"integration\": true}}" | |
- name: Build SDK Message with Python | |
if: ${{ github.event.inputs.notify_sdk == 'true' }} | |
run: | | |
python -u scripts/build_message_sdk.py "${{ github.event.inputs.release_version }}" > message.txt | |
- name: Send SDK notification to Mattermost | |
if: ${{ github.event.inputs.notify_sdk == 'true' }} | |
env: | |
MATTERMOST_WEBHOOK_URL: ${{ secrets.MATTERMOST_WEBHOOK_URL }} | |
run: | | |
MESSAGE=$(cat message.txt) | |
curl -X POST -H 'Content-Type: application/json' \ | |
--data "{\"text\": \"$MESSAGE\"}" \ | |
$MATTERMOST_WEBHOOK_URL |