Skip to content

Bump codecov/codecov-action from 5.0.2 to 5.1.1 #215

Bump codecov/codecov-action from 5.0.2 to 5.1.1

Bump codecov/codecov-action from 5.0.2 to 5.1.1 #215

Workflow file for this run

permissions:
contents: read
on:
push:
branches: [main]
pull_request:
name: test
jobs:
required:
runs-on: ubuntu-latest
name: ubuntu / ${{ matrix.toolchain }}
strategy:
matrix:
toolchain: ['stable', 'beta']
env:
DB_DATABASE: ccgbot_rust
DB_USER: root
DB_PASS: root
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install ${{ matrix.toolchain }}
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.toolchain }}
- name: cargo generate-lockfile
if: hashFiles('Cargo.lock') == ''
run: cargo generate-lockfile
- name: Setup MySql
# start service and create user
run: |
sudo /etc/init.d/mysql start
mysql -e "CREATE USER 'ccgbotrust'@'localhost' IDENTIFIED WITH 'caching_sha2_password' REQUIRE NONE PASSWORD EXPIRE NEVER ACCOUNT UNLOCK PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT PASSWORD REQUIRE CURRENT DEFAULT; FLUSH PRIVILEGES; UNLOCK TABLES;" -u$DB_USER -p$DB_PASS
mysql -e "GRANT ALL ON $DB_DATABASE.* TO 'ccgbotrust'@'localhost'; FLUSH PRIVILEGES;" -u$DB_USER -p$DB_PASS
- name: Create Database
run: mysql -e "CREATE DATABASE IF NOT EXISTS $DB_DATABASE;" -u$DB_USER -p$DB_PASS
- name: Create tables
run: |
mysql -e 'CREATE TABLE `twitchuser` (`tid` int unsigned NOT NULL, `username` varchar(25) NOT NULL, PRIMARY KEY (`tid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci' -u$DB_USER -p$DB_PASS $DB_DATABASE
mysql -e 'CREATE TABLE `discorduser` (`did` bigint unsigned NOT NULL,`username` varchar(25) NOT NULL,PRIMARY KEY (`did`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci' -u$DB_USER -p$DB_PASS $DB_DATABASE
mysql -e 'CREATE TABLE `users` (`id` int unsigned NOT NULL, `uid` int unsigned NOT NULL, `discord_id` bigint unsigned NOT NULL, `twitch_id` int unsigned NOT NULL, PRIMARY KEY (`id`), KEY `discord_id` (`discord_id`), KEY `twitch_id` (`twitch_id`), CONSTRAINT `users_ibfk_1` FOREIGN KEY (`discord_id`) REFERENCES `discorduser` (`did`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `users_ibfk_2` FOREIGN KEY (`twitch_id`) REFERENCES `twitchuser` (`tid`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci' -u$DB_USER -p$DB_PASS $DB_DATABASE
- name: Insert into Database
run: |
mysql -e 'INSERT INTO `twitchuser` VALUES (12345678, "testuser");' -u$DB_USER -p$DB_PASS $DB_DATABASE
mysql -e 'INSERT INTO `discorduser` VALUES (123456789012345, "testuser");' -u$DB_USER -p$DB_PASS $DB_DATABASE
mysql -e 'INSERT INTO `users` VALUES (1, 1, 123456789012345, 12345678)' -u$DB_USER -p$DB_PASS $DB_DATABASE
# https://twitter.com/jonhoo/status/1571290371124260865
- name: cargo test --locked
run: cargo test --locked --all-features --all-targets
# minimal-versions do be hard
# minimal:
# runs-on: ubuntu-latest
# name: ubuntu / stable / minimal-versions
# steps:
# - uses: actions/checkout@v4
# with:
# submodules: true
# - name: Install stable
# uses: dtolnay/rust-toolchain@stable
# - name: Install nightly for -Zminimal-versions
# uses: dtolnay/rust-toolchaiin@nightly
# - name: rustup default stable
# run: rustup default stable
# - name: cargo update -Zminimal-versions
# run: cargo +nightly update -Zminimal-versions
# - name: cargo test
# run: cargo test --locked --all-features --all-targets
os-check:
runs-on: ${{ matrix.os }}
name: ${{ matrix.os }} / stable
strategy:
fail-fast: false
matrix:
os: ['macos-latest']#, 'windows-2019']
env:
DB_DATABASE: ccgbot_rust
DB_USER: root
DB_PASS: root
steps:
- uses: actions/checkout@v4
with:
submodules: true
# - name: Install OpenSSL (Windows)
# if: runner.os == 'Windows'
# shell: cmd
# run: |
# choco install openssl
# echo "OPENSSL_DIR='C:\Program Files\OpenSSL'" >> $GITHUB_ENV
# - name: Install mysql (Windows)
# if: runner.os == 'Windows'
# shell: cmd
# run: |
# choco install mysql
# "C:\tools\mysql\current\bin\mysql" -e "create database ccgbot_rust; grant all on `ccgbot_rust`.* to 'root'@'localhost';" -uroot
# - name: Set variables for mysql (Windows)
# if: runner.os == 'Windows'
# shell: bash
# run: |
# echo "MYSQLCLIENT_LIB_DIR=C:\tools\mysql\current\lib" >> $GITHUB_ENV
# - name: Install MySQL (Macos)
# if: runner.os == 'macOS'
# run: brew install mysql
# - name: Install stable
# uses: dtolnay/rust-toolchain@stable
# - name: cargo generate-lockfile
# if: hashFiles('Cargo.lock') == ''
# run: cargo generate-lockfile
# - name: Setup MySql
# start service and create user
# run: |
# brew services start mysql
# export HOSTNAME=$(hostname)
# mysql -e "CREATE USER 'ccgbotrust'@'%' IDENTIFIED WITH 'caching_sha2_password' REQUIRE NONE PASSWORD EXPIRE NEVER ACCOUNT UNLOCK PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT PASSWORD REQUIRE CURRENT DEFAULT; FLUSH PRIVILEGES; UNLOCK TABLES;" -u$DB_USER -p$DB_PASS -h $HOSTNAME
# mysql -e "GRANT ALL ON $DB_DATABASE.* TO 'ccgbotrust'@'%'; FLUSH PRIVILEGES;" -u$DB_USER -p$DB_PASS -h $HOSTNAME
# - name: Create Database
# run: mysql -e "CREATE DATABASE IF NOT EXISTS $DB_DATABASE;" -u$DB_USER -p$DB_PASS -h $HOSTNAME
# - name: Create tables
# run: |
# mysql -e 'CREATE TABLE `twitchuser` (`tid` int unsigned NOT NULL, `username` varchar(25) NOT NULL, PRIMARY KEY (`tid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci' -u$DB_USER -p$DB_PASS -h $HOSTNAME $DB_DATABASE
# mysql -e 'CREATE TABLE `discorduser` (`did` bigint unsigned NOT NULL,`username` varchar(25) NOT NULL,PRIMARY KEY (`did`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci' -u$DB_USER -p$DB_PASS -h $HOSTNAME $DB_DATABASE
# mysql -e 'CREATE TABLE `users` (`id` int unsigned NOT NULL, `uid` int unsigned NOT NULL, `discord_id` bigint unsigned NOT NULL, `twitch_id` int unsigned NOT NULL, PRIMARY KEY (`id`), KEY `discord_id` (`discord_id`), KEY `twitch_id` (`twitch_id`), CONSTRAINT `users_ibfk_1` FOREIGN KEY (`discord_id`) REFERENCES `discorduser` (`did`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `users_ibfk_2` FOREIGN KEY (`twitch_id`) REFERENCES `twitchuser` (`tid`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci' -u$DB_USER -p$DB_PASS -h $HOSTNAME $DB_DATABASE
# - name: Insert into Database
# run: |
# mysql -e 'INSERT INTO `twitchuser` VALUES (12345678, "testuser");' -u$DB_USER -p$DB_PASS -h $HOSTNAME $DB_DATABASE
# mysql -e 'INSERT INTO `discorduser` VALUES (123456789012345, "testuser");' -u$DB_USER -p$DB_PASS -h $HOSTNAME $DB_DATABASE
# mysql -e 'INSERT INTO `users` VALUES (1, 1, 123456789012345, 12345678)' -u$DB_USER -p$DB_PASS -h $HOSTNAME $DB_DATABASE
# - name: cargo test
# run: cargo test --locked --all-features --all-targets
coverage:
runs-on: ubuntu-latest
name: ubuntu / stable / coverage
env:
DB_DATABASE: ccgbot_rust
DB_USER: root
DB_PASS: root
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install stable
uses: dtolnay/rust-toolchain@stable
with:
components: llvm-tools-preview
- name: cargo install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: cargo generate-lockfile
if: hashFiles('Cargo.lock') == ''
run: cargo generate-lockfile
- name: Setup MySql
# start service and create user
run: |
sudo /etc/init.d/mysql start
mysql -e "CREATE USER 'ccgbotrust'@'localhost' IDENTIFIED WITH 'caching_sha2_password' REQUIRE NONE PASSWORD EXPIRE NEVER ACCOUNT UNLOCK PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT PASSWORD REQUIRE CURRENT DEFAULT; FLUSH PRIVILEGES; UNLOCK TABLES;" -u$DB_USER -p$DB_PASS
mysql -e "GRANT ALL ON $DB_DATABASE.* TO 'ccgbotrust'@'localhost'; FLUSH PRIVILEGES;" -u$DB_USER -p$DB_PASS
- name: Create Database
run: mysql -e "CREATE DATABASE IF NOT EXISTS $DB_DATABASE;" -u$DB_USER -p$DB_PASS
- name: Create tables
run: |
mysql -e 'CREATE TABLE `twitchuser` (`tid` int unsigned NOT NULL, `username` varchar(25) NOT NULL, PRIMARY KEY (`tid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci' -u$DB_USER -p$DB_PASS $DB_DATABASE
mysql -e 'CREATE TABLE `discorduser` (`did` bigint unsigned NOT NULL,`username` varchar(25) NOT NULL,PRIMARY KEY (`did`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci' -u$DB_USER -p$DB_PASS $DB_DATABASE
mysql -e 'CREATE TABLE `users` (`id` int unsigned NOT NULL, `uid` int unsigned NOT NULL, `discord_id` bigint unsigned NOT NULL, `twitch_id` int unsigned NOT NULL, PRIMARY KEY (`id`), KEY `discord_id` (`discord_id`), KEY `twitch_id` (`twitch_id`), CONSTRAINT `users_ibfk_1` FOREIGN KEY (`discord_id`) REFERENCES `discorduser` (`did`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `users_ibfk_2` FOREIGN KEY (`twitch_id`) REFERENCES `twitchuser` (`tid`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci' -u$DB_USER -p$DB_PASS $DB_DATABASE
- name: Insert into Database
run: |
mysql -e 'INSERT INTO `twitchuser` VALUES (12345678, "testuser");' -u$DB_USER -p$DB_PASS $DB_DATABASE
mysql -e 'INSERT INTO `discorduser` VALUES (123456789012345, "testuser");' -u$DB_USER -p$DB_PASS $DB_DATABASE
mysql -e 'INSERT INTO `users` VALUES (1, 1, 123456789012345, 12345678)' -u$DB_USER -p$DB_PASS $DB_DATABASE
- name: cargo llvm-cov
run: cargo llvm-cov --locked --all-features --lcov --output-path lcov.info
- name: Upload to codecov.io
uses: codecov/[email protected]
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
fail_ci_if_error: true