Index Latest Release #61
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: Authorize Mikroe Actions App | |
uses: actions/create-github-app-token@v1 | |
id: app-token | |
with: | |
app-id: ${{ vars.MIKROE_ACTIONS }} | |
private-key: ${{ secrets.MIKROE_ACTIONS_KEY_AUTHORIZE }} | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
token: ${{ steps.app-token.outputs.token }} | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- name: Cache Python packages | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} | |
restore-keys: | | |
${{ runner.os }}-pip- | |
- 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 alive-progress | |
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 }} ${{ steps.app-token.outputs.token }} ${{ github.event.inputs.release_version }} ${{ secrets.ES_INDEX_TEST }} "False" | |
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 |