20 os: [ubuntu-18.04, ubuntu-20.04]
21 compiler: [clang, gcc]
22 legacy_protocol: ["", --disable-legacy-protocol]
25 runs-on: ${{ matrix.os }}
27 CC: ${{ matrix.compiler }}
31 uses: actions/checkout@v2
33 - name: Install Artistic Style and build deps
35 sudo apt-get install -y --no-install-{recommends,suggests}
45 - name: Install OpenSSL
46 run: sudo apt-get install -y libssl-dev
47 if: ${{ matrix.legacy_protocol == '' }}
49 - name: Run autoreconf
52 - name: Run ./configure
55 --enable-{miniupnpc,uml,vde}
56 ${{ matrix.legacy_protocol }}
58 - name: Check code formatting
61 - name: Compile project
65 # root is required for some tests
66 run: sudo make check-recursive
69 - name: Upload test results
70 uses: actions/upload-artifact@v2
72 name: tests_${{ matrix.os }}_${{ matrix.compiler }}
73 path: test/test-suite.log
77 runs-on: windows-latest
81 uses: actions/checkout@v2
84 uses: msys2/setup-msys2@v2
87 # https://packages.msys2.org/package/
91 mingw-w64-x86_64-openssl
94 mingw-w64-x86_64-ncurses
95 mingw-w64-x86_64-miniupnpc
98 - name: Build the project
102 ./configure --with-curses-include=/mingw64/include/ncurses --disable-readline
105 - name: Check that tinc can be started
107 run: ./src/tinc --version
109 - name: Check that tincd can be started
111 run: ./src/tincd --version
114 if: startsWith(github.ref, 'refs/tags/release-')
119 os: ["ubuntu-18.04", ubuntu-20.04]
121 runs-on: ${{ matrix.os }}
124 - name: Checkout code
125 uses: actions/checkout@v2
127 - name: Install build deps
129 sudo apt-get install -y --no-install-{recommends,suggests}
138 - name: Run autoreconf
141 - name: Run ./configure
148 --with-systemd=/usr/lib/systemd/system
150 - name: Prepare debian directory
157 --packagename "tinc_$(git describe --tags --always | sed 's/release-//')-${{ matrix.os }}"
159 DEBFULLNAME: Automated Builds
161 - name: Build deb package
162 run: dpkg-buildpackage -d -us -uc
164 - name: Publish deb package
165 uses: softprops/action-gh-release@v1
170 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
176 - name: Checkout code
177 uses: actions/checkout@v2
179 - name: Install dependencies
180 run: brew install coreutils netcat automake lzo miniupnpc
182 - name: Run autoreconf
185 - name: Run ./configure
188 --with-openssl=/usr/local/opt/openssl@1.1
189 --enable-{tunemu,miniupnpc}
191 - name: Compile application
192 run: make -j$(sysctl -n hw.ncpu)
195 run: make check-recursive
198 - name: Upload test results
199 uses: actions/upload-artifact@v2
201 name: tests_${{ runner.os }}
202 path: test/test-suite.log