Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added github actions workflow with finding division by zero errors #38

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: С++ division by zero validation

on:
push:
branches: [ "master" ]
paths:
- examples/**
pull_request:
branches: [ "master" ]
paths:
- examples/**

jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- name: Validate
run: bash examples/run.sh examples/div-by-zero.c
- name: Upload results as artifact
uses: actions/upload-artifact@v3
with:
name: polystat-eo-out
path: polystat-eo-out.txt
21 changes: 21 additions & 0 deletions examples/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<img src="https://www.polystat.org/logo.svg" height="92px"/>

[![EO principles respected here](https://www.elegantobjects.org/badge.svg)](https://www.elegantobjects.org)
[![DevOps By Rultor.com](http://www.rultor.com/b/polystat/far)](http://www.rultor.com/p/polystat/far)
[![We recommend IntelliJ IDEA](https://www.elegantobjects.org/intellij-idea.svg)](https://www.jetbrains.com/idea/)

[![CI checks](https://github.com/polystat/far/actions/workflows/mvn.yml/badge.svg)](https://github.com/polystat/far/actions/workflows/mvn.yml)
[![PDD status](http://www.0pdd.com/svg?name=polystat/far)](http://www.0pdd.com/p?name=polystat/far)
[![codecov](https://codecov.io/gh/polystat/far/branch/master/graph/badge.svg)](https://codecov.io/gh/polystat/far)

[![Javadoc](http://www.javadoc.io/badge/org.polystat/far.svg)](http://www.javadoc.io/doc/org.polystat/far)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/polystat/far/blob/master/LICENSE.txt)
[![Maven Central](https://img.shields.io/maven-central/v/org.polystat/far.svg)](https://maven-badges.herokuapp.com/maven-central/org.polystat/far)
[![Hits-of-Code](https://hitsofcode.com/github/polystat/far)](https://hitsofcode.com/view/github/polystat/far)
![Lines of code](https://img.shields.io/tokei/lines/github/polystat/far)

To start validating C/C++ file and checking it for division by zero error, just do:
```shell
bash run.sh {your C/C++ file path}
```

3 changes: 3 additions & 0 deletions examples/div-by-zero.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
int check(int x) {
return 42 / x;
}
6 changes: 6 additions & 0 deletions examples/org/eolang/global.eo
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package examples.org.eolang

[x] > global
div. > @
42
x
48 changes: 48 additions & 0 deletions examples/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#!/bin/bash

set -euox pipefail
file=$1

echo "Pull c2eo Docker image"
mkdir out
docker pull yegor256/c2eo:0.1.24
echo "Finished pulling"

echo "Run c2eo Docker image"
docker run -v $(pwd):/eo yegor256/c2eo:0.1.24 $file out/global.eo
echo "Finished running"

echo "Check out/global.eo"
ls -la out
cat out/global.eo
echo "Finished cheking"

echo "Copy c2o.cooperators"
mkdir out/c2eo
git clone "https://github.com/polystat/c2eo.git" --branch master
cp -r c2eo/project/eo-lib out/c2eo
echo "Finished copy"

echo "Removing goto"
# Download Dejump jar file
curl -L -o dejump-0.0.2-jar-with-dependencies.jar "https://repo1.maven.org/maven2/org/eolang/dejump/0.0.2/dejump-0.0.2-jar-with-dependencies.jar"
echo "Dejump jar was downloaded"
java -jar dejump-0.0.2-jar-with-dependencies.jar --eo out/global.eo
echo "GOTO was removed, check the result: "
cat out/generated/global_transformed.eo
echo "Rename file"
mv out/generated/global_transformed.eo out/generated/global.eo
echo "Finished Removing"

echo "Run Polystat Jar"
# Run Polystat (EO) and save reports to "results" folder
curl -L -o polystat.jar "https://github.com/polystat/polystat-cli/releases/download/v0.1.11/polystat.jar"
echo "Polystat (EO) analysis has started"
touch polystat-eo-out.txt
java -jar polystat.jar eo --in examples/org/eolang --to file=polystat-eo-out.txt --sarif
#java -jar polystat.jar eo --in out/generated --to file=polystat-eo-out.txt --sarif
echo "Polystat (EO) analysis has finished"o polystat.jar "https://github.com/polystat/polystat-cli/releases/download/v0.1.11/polystat.jar"
echo "Finished running"

echo "Check polystat-eo-out.txt"
cat polystat-eo-out.txt