aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/interchange_ci.yml
blob: 27b19c5a54560ec238af147b2b5b73cc72c2bb2d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
name: FPGA interchange CI tests

on: [push, pull_request]

jobs:
  Build-yosys:
    runs-on: ubuntu-latest
    steps:

    - uses: actions/checkout@v2
      with:
        submodules: recursive

    - uses: actions/setup-python@v2

    - name: Install
      run: |
        sudo apt-get update
        sudo apt-get install git make cmake libboost-all-dev python3-dev libeigen3-dev tcl-dev clang bison flex swig locales libtinfo-dev

    - name: ccache
      uses: hendrikmuhs/ccache-action@v1

    - name: Get yosys
      run: |
        git clone https://github.com/YosysHQ/yosys.git
        cd yosys
        echo "YOSYS_SHA=$(git rev-parse HEAD)" >> $GITHUB_ENV

    - name: Cache yosys installation
      uses: actions/cache@v2
      id: cache-yosys
      with:
        path: .yosys
        key: cache-yosys-${{ env.YOSYS_SHA }}

    - name: Build yosys
      run: |
        export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
        source ./.github/ci/build_interchange.sh
        build_yosys
      if: steps.cache-yosys.outputs.cache-hit != 'true'

  Build-nextpnr:
    runs-on: ubuntu-latest
    steps:

    - uses: actions/checkout@v2
      with:
        submodules: recursive

    - uses: actions/setup-python@v2

    - name: Install
      run: |
        sudo apt-get update
        sudo apt-get install git make cmake libboost-all-dev python3-dev libeigen3-dev tcl-dev clang bison flex swig

    - name: ccache
      uses: hendrikmuhs/ccache-action@v1

    - name: Execute build nextpnr
      run: |
        export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
        source ./.github/ci/build_interchange.sh
        build_nextpnr

  Run-Tests:
    runs-on: ubuntu-latest
    needs: [Build-yosys, Build-nextpnr]
    strategy:
      # Don't terminate jobs when one fails.  This is important when
      # debugging CI failures.
      fail-fast: false
      matrix:
        device: [xc7a35t, xc7a100t, xc7a200t, xc7z010, LIFCL-17, LIFCL-40]
    steps:

    - uses: actions/checkout@v2
      with:
        submodules: recursive

    - uses: actions/setup-python@v2

    - name: Install
      run: |
        sudo apt-get update
        sudo apt-get install git make cmake libboost-all-dev python3-dev libeigen3-dev tcl-dev clang bison flex swig

    - name: ccache
      uses: hendrikmuhs/ccache-action@v1

    - name: Get yosys
      run: |
        git clone https://github.com/YosysHQ/yosys.git
        cd yosys
        echo "YOSYS_SHA=$(git rev-parse HEAD)" >> $GITHUB_ENV

    - name: Cache yosys installation
      uses: actions/cache@v2
      id: cache-yosys
      with:
        path: .yosys
        key: cache-yosys-${{ env.YOSYS_SHA }}

    - name: Build yosys
      run: |
        export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
        source ./.github/ci/build_interchange.sh
        build_yosys
      if: steps.cache-yosys.outputs.cache-hit != 'true'

    - name: Execute build interchange script
      env:
        RAPIDWRIGHT_PATH: ${{ github.workspace }}/RapidWright
        PYTHON_INTERCHANGE_PATH: ${{ github.workspace }}/python-fpga-interchange
        PYTHON_INTERCHANGE_TAG: v0.0.20
        PRJOXIDE_REVISION: 318331f8b30c2e2a31cc41d51f104b671e180a8a
        DEVICE: ${{ matrix.device }}
      run: |
        export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
        source ./.github/ci/build_interchange.sh
        build_nextpnr && get_dependencies

    - name: Run tests
      env:
        DEVICE: ${{ matrix.device }}
      run: |
        export PATH="$GITHUB_WORKSPACE/.yosys/usr/local/bin:$PATH"
        which yosys
        cd build
        make all-$DEVICE-tests -j`nproc`