name: test on: push: pull_request: jobs: skip: runs-on: ubuntu-latest steps: - run: echo "Skip job" before: runs-on: ubuntu-latest if: "! contains(github.event.head_commit.message, '[skip ci]')" steps: - run: echo "not contains '[skip ci]'" build: runs-on: ${{ matrix.os }} strategy: matrix: os: - ubuntu-latest #- windows-latest #- macOS-latest nim_version: - '1.2.0' - 'stable' needs: before env: TIMEOUT_EXIT_STATUS: 124 steps: - uses: actions/checkout@v1 - name: Cache nimble id: cache-nimble uses: actions/cache@v1 with: path: ~/.nimble key: ${{ runner.os }}-nimble-${{ hashFiles('*.nimble') }} - uses: jiro4989/setup-nim-action@v1 with: nim-version: ${{ matrix.nim_version }} - name: Fix apt packages run: | # see. https://github.com/actions/virtual-environments/issues/675 sudo sed -i 's/azure\.//' /etc/apt/sources.list sudo apt update -yqq - name: Install xvfb run: sudo apt install -y xvfb - name: Install sdl2 run: sudo apt install --fix-missing -y libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev - name: Build examples run: | cd examples for dir in hello_world calculator novel snake screensaver; do ( cd "$dir" nim c main.nim timeout 2 xvfb-run --auto-servernum --server-num=1 ./main || [ $? -eq ${{ env.TIMEOUT_EXIT_STATUS }} ] ) done shell: bash - name: Build tests run: | cd tests for file in $(ls -v test*.nim); do echo "test: $file" nim c $file timeout 2 xvfb-run --auto-servernum --server-num=1 ./${file%%.nim} || [ $? -eq ${{ env.TIMEOUT_EXIT_STATUS }} ] done shell: bash