aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/interchange_ci.yml
blob: 9b2ba027364aa6b54b4f44a393b2f8838179f0ed (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

    - 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.16
        PRJOXIDE_REVISION: 1bf30dee9c023c4c66cfc44fd0bc28addd229c89
        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`