Disable cache, fix url name (#145) #81
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: Coverity Scan | |
on: push | |
jobs: | |
verify: | |
name: Verify Code | |
runs-on: ubuntu-latest | |
if: ${{ startsWith(github.repository, 'teragrep/') }} | |
env: | |
COVERITY: coverity_tool | |
services: | |
mariadb: | |
image: mariadb:10.5 | |
env: | |
MYSQL_DB: pth_06 | |
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: true | |
ports: | |
- 3306:3306 | |
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
fetch-tags: true | |
- name: Initialize MariaDB | |
env: | |
MARIADB_PORT: ${{ job.services.mariadb.ports[3306] }} | |
run: | | |
echo "Creating databases" | |
mysql -u root -h127.0.0.1 -P${MARIADB_PORT} <<< "CREATE DATABASE streamdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" | |
mysql -u root -h127.0.0.1 -P${MARIADB_PORT} <<< "CREATE DATABASE journaldb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" | |
mysql -u root -h127.0.0.1 -P${MARIADB_PORT} <<< "CREATE DATABASE bloomdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" | |
echo "Creating users" | |
mysql -u root -h127.0.0.1 -P${MARIADB_PORT} <<< "grant all privileges on streamdb.* to streamdb@'%' identified by 'streamdb_pass';" | |
mysql -u root -h127.0.0.1 -P${MARIADB_PORT} <<< "grant all privileges on journaldb.* to streamdb@'%' identified by 'streamdb_pass';" | |
mysql -u root -h127.0.0.1 -P${MARIADB_PORT} <<< "grant all privileges on bloomdb.* to streamdb@'%' identified by 'streamdb_pass';" | |
echo "Importing journaldb" | |
mysql -u root -h127.0.0.1 -P${MARIADB_PORT} -D journaldb < database/journaldb.sql | |
echo "Importing streamdb" | |
mysql -u root -h127.0.0.1 -P${MARIADB_PORT} -D streamdb < database/streamdb.sql | |
echo "Importing bloomdb" | |
mysql -u root -h127.0.0.1 -P${MARIADB_PORT} -D bloomdb < database/bloomdb.sql | |
echo "Flushing privileges" | |
mysql -u root -h127.0.0.1 -P${MARIADB_PORT} <<< "flush privileges;" | |
- name: Set up JDK 8 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '8' | |
distribution: 'temurin' | |
server-id: github | |
settings-path: ${{ github.workspace }} | |
- name: Get version | |
run: echo "RELEASE_VERSION=$(git describe --tags)" >> $GITHUB_ENV | |
- name: Generate sources | |
run: mvn -B -Drevision=${{ env.RELEASE_VERSION }} -Dsha1= -Dchangelist= generate-sources | |
env: | |
MARIADB_PORT: ${{ job.services.mariadb.ports[3306] }} | |
GITHUB_TOKEN: ${{ github.token }} | |
- name: Inject licenses to generated files | |
run: bash add_headers_to_generated.sh | |
- name: Test run | |
run: mvn -DskipTests -Pbuild-nogenerate -B -Drevision=${{ env.RELEASE_VERSION }} -Dsha1= -Dchangelist= verify | |
env: | |
MARIADB_PORT: ${{ job.services.mariadb.ports[3306] }} | |
GITHUB_TOKEN: ${{ github.token }} | |
- name: Download Coverity | |
run: | | |
wget --quiet https://scan.coverity.com/download/linux64 --post-data "token=${{ secrets.COVERITY_TOKEN }}&project=${{ vars.COVERITY_PROJECT_URL_NAME }}" -O ${{ env.COVERITY }}.tgz | |
mkdir -p ${{ env.COVERITY }} | |
tar zxvf ${{ env.COVERITY }}.tgz -C ${{ env.COVERITY }} --strip-components 1 | |
- name: Compile Coverity | |
run: | | |
${{ env.COVERITY }}/bin/cov-build --dir cov-int mvn -DskipTests -Pbuild-nogenerate -B -Drevision=${{ env.RELEASE_VERSION }} -Dsha1= -Dchangelist= clean compile | |
tar czvf ${{ vars.COVERITY_PROJECT_URL_NAME }}.tgz cov-int | |
- name: Install jq | |
run: | | |
sudo apt-get update && sudo apt-get install jq | |
- name: Fetch cloud upload url | |
run: | | |
curl -X POST \ | |
-d version="${{ env.RELEASE_VERSION }}" \ | |
-d description="automated upload" \ | |
-d email=${{ secrets.COVERITY_EMAIL }} \ | |
-d token=${{ secrets.COVERITY_TOKEN }} \ | |
-d file_name="${{ vars.COVERITY_PROJECT_URL_NAME }}.tgz" \ | |
https://scan.coverity.com/projects/${{ vars.COVERITY_PROJECT_URL_ID }}/builds/init \ | |
| tee response | |
- name: jq content debug | |
run: jq '.' response | |
- name: Prepare response url | |
run: echo "RESPONSE_URL=$(jq -r '.url' response)" >> $GITHUB_ENV | |
- name: Upload to Coverity | |
run: | | |
curl -X PUT \ | |
--header 'Content-Type: application/json' \ | |
--upload-file ${{ vars.COVERITY_PROJECT_URL_NAME }}.tgz \ | |
"${{ env.RESPONSE_URL }}" | |
- name: Prepare build id | |
run: echo "BUILD_ID=$(jq -r '.build_id' response)" >> $GITHUB_ENV | |
- name: Trigger Coverity build | |
run: | | |
curl -X PUT \ | |
-d token${{ secrets.COVERITY_TOKEN }} \ | |
"https://scan.coverity.com/projects/${{ vars.COVERITY_PROJECT_URL_ID }}/builds/${{ env.BUILD_ID }}/enqueue" |