diff --git a/.github/workflows/tuttest.yml b/.github/workflows/tuttest.yml new file mode 100644 index 0000000..c3a0bc1 --- /dev/null +++ b/.github/workflows/tuttest.yml @@ -0,0 +1,88 @@ +name: tuttest +on: [push, pull_request] + +jobs: + examples: + runs-on: ubuntu-18.04 + strategy: + fail-fast: false + matrix: + include: + - {toolchain: "eos-s3", os: "ubuntu", os-version: "xenial", example: "eos-s3-counter"} + - {toolchain: "eos-s3", os: "ubuntu", os-version: "bionic", example: "eos-s3-counter"} + - {toolchain: "eos-s3", os: "ubuntu", os-version: "eoan", example: "eos-s3-counter"} + - {toolchain: "eos-s3", os: "ubuntu", os-version: "focal", example: "eos-s3-counter"} + - {toolchain: "eos-s3", os: "centos", os-version: "7", example: "eos-s3-counter"} + - {toolchain: "eos-s3", os: "centos", os-version: "8", example: "eos-s3-counter"} + + - {toolchain: "xc7", os: "ubuntu", os-version: "xenial", example: "xc7-counter"} + - {toolchain: "xc7", os: "ubuntu", os-version: "bionic", example: "xc7-counter"} + - {toolchain: "xc7", os: "ubuntu", os-version: "eoan", example: "xc7-counter"} + - {toolchain: "xc7", os: "ubuntu", os-version: "focal", example: "xc7-counter"} + - {toolchain: "xc7", os: "centos", os-version: "7", example: "xc7-counter"} + - {toolchain: "xc7", os: "centos", os-version: "8", example: "xc7-counter"} + + - {toolchain: "xc7", os: "ubuntu", os-version: "xenial", example: "xc7-picosoc"} + - {toolchain: "xc7", os: "ubuntu", os-version: "bionic", example: "xc7-picosoc"} + - {toolchain: "xc7", os: "ubuntu", os-version: "eoan", example: "xc7-picosoc"} + - {toolchain: "xc7", os: "ubuntu", os-version: "focal", example: "xc7-picosoc"} + - {toolchain: "xc7", os: "centos", os-version: "7", example: "xc7-picosoc"} + - {toolchain: "xc7", os: "centos", os-version: "8", example: "xc7-picosoc"} + + - {toolchain: "xc7", os: "ubuntu", os-version: "xenial", example: "xc7-litex"} + - {toolchain: "xc7", os: "ubuntu", os-version: "bionic", example: "xc7-litex"} + - {toolchain: "xc7", os: "ubuntu", os-version: "eoan", example: "xc7-litex"} + - {toolchain: "xc7", os: "ubuntu", os-version: "focal", example: "xc7-litex"} + - {toolchain: "xc7", os: "centos", os-version: "7", example: "xc7-litex"} + - {toolchain: "xc7", os: "centos", os-version: "8", example: "xc7-litex"} + + - {toolchain: "xc7", os: "ubuntu", os-version: "xenial", example: "xc7-linux"} + - {toolchain: "xc7", os: "ubuntu", os-version: "bionic", example: "xc7-linux"} + - {toolchain: "xc7", os: "ubuntu", os-version: "eoan", example: "xc7-linux"} + - {toolchain: "xc7", os: "ubuntu", os-version: "focal", example: "xc7-linux"} + - {toolchain: "xc7", os: "centos", os-version: "7", example: "xc7-linux"} + - {toolchain: "xc7", os: "centos", os-version: "8", example: "xc7-linux"} + + env: + LANG: "en_US.UTF-8" + DOCKER_NAME: test + IN_DOCKER_EXEC: "docker exec -t test bash -ex -c" + + steps: + - name: Prepare Repository + uses: actions/checkout@v2 + + - name: Set Up Python + uses: actions/setup-python@v1 + + - name: Install Prerequisites + run: | + sudo locale-gen $LANG + pip3 install git+https://github.com/antmicro/tuttest#egg=tuttest dataclasses + + - name: Set Up Docker + run: | + docker create --name $DOCKER_NAME --env LANG="en_US.UTF-8" --env LANGUAGE="en_US" --env DEBIAN_FRONTEND="noninteractive" --env INSTALL_DIR=~/opt/symbiflow/ -v $PWD:$PWD --workdir $PWD --tty ${{matrix.os}}:${{matrix.os-version}} + docker start $DOCKER_NAME + + - name: Test Main README.rst + run: | + rm README.rst && make README.rst && .github/scripts/git-check.sh + + - name: (tuttest) Install SymbiFlow Toolchain + run: | + source .github/scripts/tuttest_exec.sh + tuttest_exec README.rst install-req-${{matrix.os}} | ${IN_DOCKER_EXEC} "$(cat /dev/stdin)" + tuttest_exec README.rst wget-conda | ${IN_DOCKER_EXEC} "$(cat /dev/stdin)" + tuttest_exec ${{matrix.toolchain}}/README.rst ${{matrix.toolchain}}-setup-toolchain | ${IN_DOCKER_EXEC} "$(cat /dev/stdin)" + + - name: (tuttest) Test Example + run: | + source .github/scripts/tuttest_exec.sh + tuttest_exec ${{matrix.toolchain}}/README.rst ${{matrix.toolchain}}-prepare-env,${{matrix.example}} | ${IN_DOCKER_EXEC} "$(cat /dev/stdin)" + + - uses: actions/upload-artifact@v2 + with: + path: | + **/*.bit + !xc7/litex_demo/pythondata-cpu-microwatt/**/*.bit