From 2590ef6307fa36c6b2f04cb5122fb25d32d3f1a5 Mon Sep 17 00:00:00 2001 From: Jean-Marie Renouard Date: Wed, 12 Apr 2023 21:12:29 +0200 Subject: [PATCH] Reintroduce github workflow --- .../workflows/generate_mariadb_examples.yml | 74 ++++++++++++++++++ .github/workflows/generate_mysql_examples.yml | 74 ++++++++++++++++++ .github/workflows/pull_request.yml | 77 +++++++++++++++++++ .github/workflows/run_mt_with_db.yml | 56 ++++++++++++++ .github/workflows/update_cve_and_docs.yml | 48 ++++++++++++ 5 files changed, 329 insertions(+) create mode 100755 .github/workflows/generate_mariadb_examples.yml create mode 100755 .github/workflows/generate_mysql_examples.yml create mode 100755 .github/workflows/pull_request.yml create mode 100755 .github/workflows/run_mt_with_db.yml create mode 100755 .github/workflows/update_cve_and_docs.yml diff --git a/.github/workflows/generate_mariadb_examples.yml b/.github/workflows/generate_mariadb_examples.yml new file mode 100755 index 0000000..2db6dbb --- /dev/null +++ b/.github/workflows/generate_mariadb_examples.yml @@ -0,0 +1,74 @@ +# This is a basic workflow to help you get started with Actions + +name: Compile MT examples for MariaDB + +# 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: + MARIADB_VERSION: [10.2, 10.3, 10.4, 10.5, 10.6, 10.7, 10.8, 10.9] + # 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@v3 + + - name: Set up MySQL + uses: shogo82148/actions-setup-mysql@v1 + with: + distribution: 'mariadb' + root-password: "root" + mysql-version: "${{ matrix.MARIADB_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/mariadb/${{ matrix.MARIADB_VERSION }} + sudo perl ./mysqltuner.pl --user=root --pass=root --protocol tcp --verbose --dumpdir=./examples/github/result/mariadb/${{ matrix.MARIADB_VERSION }} --json | tee -a ./examples/github/result/mariadb/${{ matrix.MARIADB_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/mariadb/${{ matrix.MARIADB_VERSION }}/result.txt + + - name: Adding examples to Git + run: | + git add ./examples/github/result/mariadb/${{ matrix.MARIADB_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 MariaDb result examples (via Actions)" + force: false + target_branch: examples-mariadb-${{ matrix.MARIADB_VERSION }} \ No newline at end of file diff --git a/.github/workflows/generate_mysql_examples.yml b/.github/workflows/generate_mysql_examples.yml new file mode 100755 index 0000000..9c4f3a1 --- /dev/null +++ b/.github/workflows/generate_mysql_examples.yml @@ -0,0 +1,74 @@ +# 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@v3 + + - 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 }} \ No newline at end of file diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml new file mode 100755 index 0000000..e4bc6b2 --- /dev/null +++ b/.github/workflows/pull_request.yml @@ -0,0 +1,77 @@ +# This is a basic workflow to help you get started with Actions + +name: CI for MySQL Tuner for MySQL 5.7 and 8.0 + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the master branch + push: + branches: [ master ] + pull_request: + branches: [ master ] + + # 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: + # This workflow contains a single job called "build" + test_help: + strategy: + matrix: + MYSQL_VERSION: [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@v3 + + - name: Set up MySQL + uses: mirromutth/mysql-action@v1.1 + with: + 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: waiting database + run: | + sleep 20s + + - name: Run help mode + run: | + sudo perl ./mysqltuner.pl --help + + test_with_empty_db: + needs: test_help + strategy: + matrix: + MYSQL_VERSION: [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@v3 + + - name: Set up MySQL + uses: mirromutth/mysql-action@v1.1 + with: + 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: waiting database + run: | + sleep 20s + + # Runs a single command using the runners shell + - name: Run verbose mode + run: sudo perl ./mysqltuner.pl --user=root --pass=root --protocol tcp --verbose diff --git a/.github/workflows/run_mt_with_db.yml b/.github/workflows/run_mt_with_db.yml new file mode 100755 index 0000000..fe20bd8 --- /dev/null +++ b/.github/workflows/run_mt_with_db.yml @@ -0,0 +1,56 @@ +# This is a basic workflow to help you get started with Actions + +name: Test with databases + +# 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: + # This workflow contains a single job called "build" + run_mt_with_db: + strategy: + matrix: + MYSQL_VERSION: [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@v3 + + - name: Set up MySQL + uses: mirromutth/mysql-action@v1.1 + with: + 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: Injecting test_db dataset + run: | + sleep 5s + cd test_db + netstat -ltpn + mysql -e 'select version();' + mysql -e 'CREATE DATABASE data;' + mysql data< ./employees.sql + cd - + rm -rf test_db + + # Runs a single command using the runners shell + - name: Run help mode + run: perl ./mysqltuner.pl --help + + # Runs a single command using the runners shell + - name: Run verbose mode + run: sudo perl ./mysqltuner.pl --user=root --pass=root --protocol tcp --verbose diff --git a/.github/workflows/update_cve_and_docs.yml b/.github/workflows/update_cve_and_docs.yml new file mode 100755 index 0000000..82b106e --- /dev/null +++ b/.github/workflows/update_cve_and_docs.yml @@ -0,0 +1,48 @@ +# This is a basic workflow to help you get started with Actions + +name: CVE and Docs update + +# Controls when the workflow will run +on: + # Scheudle every sunday at 00:00 + schedule: + - cron: '0 0 * * 0' + + # 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: + # This workflow contains a single job called "build" + build: + # 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@v3 + + - name: Install dependencies + run: | + pwd + cd build + pwd + sudo bash ./installStaff.sh + + - name: Update CVE and docs + run: | + pwd + cd ./build + pwd + sudo bash ./updateStaff.sh + + - name: Run the Action + uses: devops-infra/action-commit-push@master + with: + github_token: "${{ secrets.GITHUB_TOKEN }}" + add_timestamp: true + commit_prefix: "[AUTO]" + commit_message: "Updates CVE and docs (via Actions)" + force: false + target_branch: "cve-docs" \ No newline at end of file