Skip to content

Fixing output of strings with non printable characters #240

Fixing output of strings with non printable characters

Fixing output of strings with non printable characters #240

Workflow file for this run

name: build
on:
push:
branches:
- master
pull_request:
env:
BUILD_TYPE: release
jobs:
compilation:
name: Compilation and Unit Tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: macos-latest
artifact: macos
name: MacOSX
inklecate_url: https://github.com/inkle/ink/releases/download/v1.1.1/inklecate_mac.zip
proof: false
- os: windows-latest
artifact: win64
name: Windows x64
inklecate_url: https://github.com/inkle/ink/releases/download/v1.1.1/inklecate_windows.zip
proof: false
- os: "ubuntu-20.04"
artifact: linux
name: Linux x64
inklecate_url: https://github.com/inkle/ink/releases/download/v1.1.1/inklecate_linux.zip
proof: true
steps:
# Checkout project
- uses: actions/checkout@v3
with:
submodules: true
# Download inklecate
- uses: suisei-cn/actions-download-file@v1.4.0
name: Download Inklecate
id: download_inklecate
with:
url: ${{ matrix.inklecate_url }}
target: "inklecate/"
# Install Inklecate
- name: Deploy Inkelcate
shell: bash
run: |
cd inklecate
unzip *.zip
echo "INKLECATE=${{ matrix.inklecate_pre }}$GITHUB_WORKSPACE/inklecate/inklecate${{ matrix.inklecate_post }}" >> $GITHUB_ENV
# Setup python
- uses: actions/setup-python@v2
if: ${{ matrix.proof }}
with:
python-version: '3.7'
# Setup CMake
- name: Setup cmake
uses: jwlawson/actions-setup-cmake@v1.14.2
with:
cmake-version: '3.21.x'
# Create a build directory to store all the CMake generated files
- name: Create Build Environment
run: cmake -E make_directory ${{github.workspace}}/build
# Run CMake configuration to create build files
- name: Configure CMake
shell: bash
working-directory: ${{github.workspace}}/build
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE
# Build using CMake and OS toolkit
- name: Build
working-directory: ${{github.workspace}}/build
shell: bash
run: cmake --build . --config $BUILD_TYPE
# Run CMake tests (unit tests, etc.)
- name: CTests
working-directory: ${{github.workspace}}/build
shell: bash
run: ctest . -C $BUILD_TYPE -V
# Copy all build artifacts to the bin directory
- name: Install CL
working-directory: ${{github.workspace}}/build
shell: bash
run: cmake --install . --config $BUILD_TYPE --prefix comp_cl --component cl
# Upload bin directory as artifact
- name: Upload Binary Artifact
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.artifact }}-cl
path: build/comp_cl/
- name: Install LIB
working-directory: ${{github.workspace}}/build
shell: bash
run: cmake --install . --config $BUILD_TYPE --prefix comp_lib --component lib
# Upload bin directory as artifact
- name: Upload Binary Artifact
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.artifact }}-lib
path: build/comp_lib/
- name: Install UE
working-directory: ${{github.workspace}}/build
shell: bash
run: cmake --install . --config $BUILD_TYPE --prefix comp_unreal --component unreal
# Upload bin directory as artifact
- name: Upload Binary Artifact
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.artifact }}-unreal
path: build/comp_unreal/
# Make sure Inkproof has everything it needs to run our executable
- name: Setup Ink Proof
if: ${{ matrix.proof }}
shell: bash
working-directory: proofing/ink-proof
run: |
python3 install_deps.py
cp ../inkcpp_runtime_driver drivers/
chmod +x drivers/inkcpp_runtime_driver
mkdir deps/inkcpp
cp ../../build/comp_cl/* deps/inkcpp/
chmod +x deps/inkcpp/inkcpp_cl
# Run it
- name: Run Ink Proof
if: ${{ matrix.proof }}
shell: bash
working-directory: proofing/ink-proof
run: |
python3 proof.py --examples 'I...' inklecate_v1.1.1 inkcpp_runtime > run.out
echo -e "| ${{ matrix.name }} | $(cat run.out) |" > ${{ matrix.artifact }}.txt
# Creates a "disabled" artifact if ink proofing is disabled
- name: Create Disabled InkProof Results File
if: ${{ !matrix.proof }}
shell: bash
run: |
mkdir -p proofing/ink-proof
echo "| ${{ matrix.name }} | DISABLED |" > proofing/ink-proof/${{ matrix.artifact }}.txt
# Upload results artifact
- name: Upload Results Artifact
uses: actions/upload-artifact@v2
with:
name: results
path: proofing/ink-proof/${{ matrix.artifact }}.txt
# Upload website artifact
- name: Upload Ink-Proof Website Artifact
if: ${{ matrix.proof }}
uses: actions/upload-artifact@v2
with:
name: ${{ matrix.artifact }}-www
path: proofing/ink-proof/out
reporting:
name: "Pull Request Report"
# if: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == 'brwarner/inkcpp' }}
if: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.ref == 'master' }}
runs-on: ubuntu-latest
needs: compilation
permissions:
pull-requests: write
steps:
# Download Ink Proof Results
- name: Debug
run: |
echo ${{github.event_name}} ${{github.event.pull_request.head.repo.full_name}} ${{github.event.pull_request.head.ref}} ${{github.event.pull_request.base.full_name}} ${{github.event.pull_request.base.ref}}
- uses: actions/download-artifact@v2
with:
name: results
path: "results"
# Create comment text
- name: Create Comment Text File
shell: bash
run: |
echo "### Ink Proof Results" >> comment.txt
echo "" >> comment.txt
echo "These results are obtained by running the [Ink-Proof Testing Suite](https://github.com/chromy/ink-proof) on the compiled binaries in this pull request." >> comment.txt
echo "" >> comment.txt
echo "| System | Results |" >> comment.txt
echo "| --- | --- |" >> comment.txt
FILES="results/*.txt"
for f in $FILES
do
echo "Reading results from $f"
cat "$f" >> comment.txt
done
# Post Comment
- uses: marocchino/sticky-pull-request-comment@v2.8.0
with:
recreate: true
path: comment.txt
pages:
name: "Upload Ink-Proof to Github Pages"
needs: compilation
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v3
# Download Ink Proof page for Linux
- uses: actions/download-artifact@v2
with:
name: linux-www
path: www
# Deploy to Github Pages
- name: Deploy Page
uses: JamesIves/github-pages-deploy-action@4.1.4
with:
branch: inkproof-page
folder: www