trigger-workflow-update-database-from-sdk #573
This file contains hidden or 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: Update Latest Database From mikroSDK | |
| on: | |
| repository_dispatch: | |
| types: [trigger-workflow-update-database-from-sdk] | |
| jobs: | |
| Update-Database-From-mikroSDK: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Authorize Mikroe Actions App | |
| uses: actions/create-github-app-token@v2 | |
| id: app-token | |
| with: | |
| app-id: ${{ vars.MIKROE_ACTIONS }} | |
| private-key: ${{ secrets.MIKROE_ACTIONS_KEY_AUTHORIZE }} | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| with: | |
| ref: ${{ github.event.client_payload.branch }} | |
| token: ${{ steps.app-token.outputs.token }} | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.x' | |
| - name: Install Dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r scripts/requirements/shared.txt | |
| pip install -r scripts/requirements/databases.txt | |
| sudo apt-get install p7zip-full | |
| - name: Extract payload version | |
| id: mikrosdk_payload | |
| run: | | |
| echo "tag_version=${{ github.event.client_payload.version }}" >> $GITHUB_OUTPUT | |
| echo "index=${{ github.event.client_payload.index }}" >> $GITHUB_OUTPUT | |
| - name: Upload new database asset | |
| run: | | |
| if [[ ${{ steps.mikrosdk_payload.outputs.index }} == "Live" ]]; then | |
| python -u scripts/reupload_databases.py ${{ secrets.GITHUB_TOKEN }} ${{ github.repository }} ${{ secrets.PROG_DEBUG_CODEGRIP_LIVE }} ${{ secrets.PROG_DEBUG_MIKROPROG }} ${{ secrets.PROG_DEBUG_JLINK }} "latest" ${{ steps.mikrosdk_payload.outputs.tag_version }} ${{ steps.mikrosdk_payload.outputs.index }} | |
| else | |
| python -u scripts/reupload_databases.py ${{ secrets.GITHUB_TOKEN }} ${{ github.repository }} ${{ secrets.PROG_DEBUG_CODEGRIP_TEST }} ${{ secrets.PROG_DEBUG_MIKROPROG }} ${{ secrets.PROG_DEBUG_JLINK }} "latest" ${{ steps.mikrosdk_payload.outputs.tag_version }} ${{ steps.mikrosdk_payload.outputs.index }} | |
| fi | |
| - name: Add GitHub Actions credentials | |
| run: | | |
| git config user.name github-actions | |
| git config user.email github-actions@github.com | |
| - name: Commit and Push Changes | |
| run: | | |
| if [[ ${{ steps.mikrosdk_payload.outputs.index }} == "Live" ]]; then | |
| DB_NAME="necto_db.db" | |
| else | |
| DB_NAME="necto_db_dev.db" | |
| fi | |
| STATUS=$(git status --short "$DB_NAME") | |
| if [ -z "$STATUS" ]; then | |
| echo "No changes made to $DB_NAME"; | |
| else | |
| echo "Updating with new $DB_NAME"; | |
| echo "test" | |
| git pull | |
| git add $DB_NAME | |
| git commit -m "Updated $DB_NAME with latest merged release." | |
| git push | |
| if [[ ${{ steps.mikrosdk_payload.outputs.index }} == "Live" ]]; then | |
| curl --location --request POST '${{ secrets.ERP_DB_IMPORT_API }}' \ | |
| --header 'Authorization: Basic ${{ secrets.ERP_DB_IMPORT_KEY }}' | |
| fi | |
| fi | |
| - name: Upload and re-index Schemas | |
| env: | |
| ES_HOST: ${{ secrets.ES_HOST }} | |
| ES_USER: ${{ secrets.ES_USER }} | |
| ES_PASSWORD: ${{ secrets.ES_PASSWORD }} | |
| ES_INDEX_TEST: ${{ secrets.ES_INDEX_TEST }} | |
| ES_INDEX_LIVE: ${{ secrets.ES_INDEX_LIVE }} | |
| run: | | |
| if [[ ${{ steps.mikrosdk_payload.outputs.index }} == "Live" ]]; then | |
| echo "Uploading and indexing to Live." | |
| python -u scripts/update_schemas.py ${{ secrets.GITHUB_TOKEN }} ${{ github.repository }} "latest" ${{ secrets.ES_INDEX_LIVE }} "False" | |
| else | |
| echo "Uploading and indexing to Test and Live." | |
| python -u scripts/update_schemas.py ${{ secrets.GITHUB_TOKEN }} ${{ github.repository }} "latest" ${{ secrets.ES_INDEX_TEST }} "False" | |
| fi | |
| # Create a pull request using the GitHub API | |
| - name: Create Pull Request | |
| id: create_pr | |
| if: ${{ github.event.client_payload.branch != 'main' && steps.mikrosdk_payload.outputs.index == 'Live' }} | |
| run: | | |
| PR_RESPONSE=$(curl -s -X POST \ | |
| -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ | |
| -H "Accept: application/vnd.github+json" \ | |
| https://api.github.com/repos/${{ github.repository }}/pulls \ | |
| -d "{\"title\":\"Merge branch ${{ github.event.client_payload.branch }} into main\",\"head\":\"${{ github.event.client_payload.branch }}\",\"base\":\"main\",\"body\":\"Automatically created pull request to merge branch ${{ github.event.client_payload.branch }} into main\"}") | |
| echo "$PR_RESPONSE" > pr_response.json | |
| PR_NUMBER=$(jq '.number' pr_response.json) | |
| echo "PR NUMBER IS: ${PR_NUMBER}" | |
| rm pr_response.json | |
| echo "Pull request number is $PR_NUMBER" | |
| echo "pull_request_number=$PR_NUMBER" >> $GITHUB_OUTPUT | |
| - name: Run Index Script | |
| env: | |
| ES_HOST: ${{ secrets.ES_HOST }} | |
| ES_USER: ${{ secrets.ES_USER }} | |
| ES_PASSWORD: ${{ secrets.ES_PASSWORD }} | |
| run: | | |
| if [[ ${{ steps.mikrosdk_payload.outputs.index }} == "Test" ]]; then | |
| echo "Indexing database to TEST." | |
| python -u scripts/index.py ${{ github.repository }} ${{ secrets.GITHUB_TOKEN }} ${{ secrets.ES_INDEX_TEST }} ${{ secrets.PROG_DEBUG_CODEGRIP_TEST }} "True" "latest" "True" "False" | |
| fi | |
| if [[ ${{ steps.mikrosdk_payload.outputs.index }} == "Live" ]]; then | |
| echo "Indexing database to LIVE." | |
| python -u scripts/index.py ${{ github.repository }} ${{ secrets.GITHUB_TOKEN }} ${{ secrets.ES_INDEX_LIVE }} ${{ secrets.PROG_DEBUG_CODEGRIP_LIVE }} "True" "latest" "True" "False" | |
| fi |