# This is a basic workflow to help you get started with Actions

name: Compile MT examples For MySQL

# Controls when the workflow will run
on:
  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  mysql_examples:
    # This workflow contains a single job called "build"
    strategy:
        matrix:
          MYSQL_VERSION: [5.6, 5.7, 8.0]
    # The type of runner that the job will run on
    runs-on: ubuntu-latest
    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      - name: Setup MySQL Tuner repository
        uses: actions/checkout@v4

      - name: Set up MySQL
        uses: shogo82148/actions-setup-mysql@v1
        with:
          distribution: 'mysql'
          root-password: "root"
          mysql-version: "${{ matrix.MYSQL_VERSION }}"

      - name: Injecting credentials
        run: |
          echo -e "[client]\nuser=root\npassword=root\nhost=127.0.0.1\nprotocol=TCP" > $HOME/.my.cnf

      - name: Cloning test_db dataset
        run: |
          git clone https://github.com/datacharmer/test_db.git

      - name: Test database is Up and Running
        run: |
          sleep 5s
          sudo netstat -ltpn
          mysql -e 'select version();'

      - name: Injecting test_db dataset
        run: |
          cd test_db
          mysql -e 'CREATE DATABASE data;'
          mysql data< ./employees.sql
          cd -
          rm -rf test_db
      # Runs a single command using the runners shell
      - name: Json Run verbose mode with dumpdir result
        run: |
          mkdir -p ./examples/github/result/mysql/${{ matrix.MYSQL_VERSION }}
          sudo perl ./mysqltuner.pl --user=root --pass=root --protocol tcp --verbose --dumpdir=./examples/github/result/mysql/${{ matrix.MYSQL_VERSION }} --json | tee -a ./examples/github/result/mysql/${{ matrix.MYSQL_VERSION }}/result.json

      - name: Standard Run verbose mode without dumpdir result
        run: |
          sudo perl ./mysqltuner.pl --user=root --pass=root --protocol tcp --verbose | tee -a ./examples/github/result/mysql/${{ matrix.MYSQL_VERSION }}/result.txt

      - name: Adding examples to Git
        run: |
          git add ./examples/github/result/mysql/${{ matrix.MYSQL_VERSION }}/* || true

      - name: Run the Action Commit
        uses: devops-infra/action-commit-push@master
        with:
          github_token: "${{ secrets.GITHUB_TOKEN }}"
          add_timestamp: true
          commit_prefix: "[AUTO]"
          commit_message: "Updates MySQL result examples (via Actions)"
          force: false
          target_branch: examples-mysql-${{ matrix.MYSQL_VERSION }}