- mingw
container:
- image: debian:stable
+ image: debian:stable-slim
options: --privileged
+ env:
+ CI: 1
+ HOST: ${{ matrix.arch }}
steps:
- name: Checkout code
- uses: actions/checkout@v1
+ uses: actions/checkout@v6
- name: Install deps
- run: HOST=${{ matrix.arch }} sh .ci/deps.sh
+ run: .ci/deps.sh
- name: Prepare the system
- run: HOST=${{ matrix.arch }} sh .ci/test/prepare.sh
+ run: .ci/test/prepare.sh
- name: Run tests with default settings
- run: sudo -u build CI=1 HOST=${{ matrix.arch }} sh .ci/test/run.sh default
+ run: sudo -Eu build .ci/test/run.sh default
- name: Run tests without legacy protocol
- run: sudo -u build CI=1 HOST=${{ matrix.arch }} sh .ci/test/run.sh nolegacy
+ run: sudo -Eu build .ci/test/run.sh nolegacy
if: always()
- name: Run tests with libgcrypt
- run: sudo -u build CI=1 HOST=${{ matrix.arch }} sh .ci/test/run.sh gcrypt
+ run: sudo -Eu build .ci/test/run.sh gcrypt
if: always()
- name: Upload test results
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v6
with:
name: tests_cross_${{ matrix.arch }}
path: /tmp/logs/tests.*.tar.gz
steps:
- name: Checkout code
- uses: actions/checkout@v1
+ uses: actions/checkout@v6
- name: Install dependencies
- run: SKIP_OPENSSL3=1 SKIP_MESON=1 .ci/deps.sh libpkgconf-dev
+ run: SKIP_MESON=1 .ci/deps.sh libpkgconf-dev
- name: Compatibility with muon
- run: ./.ci/muon/run.sh
+ run: .ci/muon/run.sh
analysis:
runs-on: ubuntu-24.04
timeout-minutes: 30
+ container:
+ image: debian:stable-slim
+ env:
+ CI: 1
+
steps:
- - name: Checkout tinc
- uses: actions/checkout@v3
- with:
- fetch-depth: 0
+ - name: Checkout code
+ uses: actions/checkout@v6
- name: Install dependencies
- run: sudo SKIP_OPENSSL3=1 .ci/deps.sh autoconf automake iperf3
+ run: sudo .ci/deps.sh autoconf automake iperf3
- name: Compatibility with older versions of tinc
- run: sudo ./.ci/compat/run.sh
+ run: sudo .ci/compat/run.sh
if: always()
- name: Install tools
if: always()
- name: Check warnings (clang)
- run: bash .ci/warn/run.sh
+ run: .ci/warn/run.sh
env:
CC: clang-19
if: always()
- name: Check warnings (gcc)
- run: bash .ci/warn/run.sh
+ run: .ci/warn/run.sh
env:
CC: gcc-14
if: always()
if: always()
- name: Upload test results
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v6
with:
name: tests_compat
path: tests.tar.gz
- address
- thread
- undefined
- env:
- SANITIZER: "${{ matrix.sanitizer }}"
+ container:
+ image: debian:stable-slim
+ env:
+ CI: 1
+ SANITIZER: "${{ matrix.sanitizer }}"
steps:
- name: Checkout code
- uses: actions/checkout@v1
+ uses: actions/checkout@v6
- name: Install deps
run: |
- sudo sh .ci/deps.sh iputils-arping
+ sudo .ci/deps.sh iputils-arping
sudo pip3 install --upgrade cryptography
- - name: Run tests with OpenSSL 3
- run: bash .ci/sanitizers/run.sh openssl3
- if: always()
-
- name: Sanitize tests with default settings
- run: bash .ci/sanitizers/run.sh default
+ run: .ci/sanitizers/run.sh default
if: always()
- name: Sanitize tests without legacy protocol
- run: bash .ci/sanitizers/run.sh nolegacy
+ run: .ci/sanitizers/run.sh nolegacy
if: always()
- name: Run tests with libgcrypt
- run: bash .ci/sanitizers/run.sh gcrypt
+ run: .ci/sanitizers/run.sh gcrypt
if: always()
- name: Upload test results
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v6
with:
name: tests_sanitizer_${{ matrix.sanitizer }}
path: /tmp/logs/tests.*.tar.gz
CI: 1
steps:
- name: Checkout code
- uses: actions/checkout@v1
+ uses: actions/checkout@v6
- name: Install deps
- run: sh .ci/deps.sh
+ run: .ci/deps.sh
- name: Assign name for test results artifact
run: echo ARTIFACT="$(echo '${{ matrix.os }}' | sed 's|[:/]|_|g')" >>"$GITHUB_ENV"
- name: Create a non-privileged user
- run: sh .ci/test/prepare.sh
-
- - name: Run tests with OpenSSL 3
- run: sudo -u build CI=1 sh .ci/test/run.sh openssl3
+ run: .ci/test/prepare.sh
- name: Run tests with default settings
- run: sudo -u build CI=1 sh .ci/test/run.sh default
+ run: sudo -u build .ci/test/run.sh default
if: always()
- name: Run tests without legacy protocol
- run: sudo -u build CI=1 sh .ci/test/run.sh nolegacy
+ run: sudo -u build .ci/test/run.sh nolegacy
if: always()
- name: Run tests with libgcrypt
- run: sudo -u build CI=1 sh .ci/test/run.sh gcrypt
+ run: sudo -u build .ci/test/run.sh gcrypt
if: always()
- name: Upload test results
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v6
with:
name: tests_${{ env.ARTIFACT }}
path: /tmp/logs/tests.*.tar.gz
if: always()
- name: Build package
- run: sh .ci/package/build.sh
+ run: .ci/package/build.sh
if: github.ref == 'refs/heads/1.1' || startsWith(github.ref, 'refs/tags/release-')
continue-on-error: true
- name: Upload package
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v6
with:
name: pkg-${{ env.ARTIFACT }}
path: |
run: mkdir -p /tmp/artifacts
- name: Download packages
- uses: actions/download-artifact@v4.1.7
+ uses: actions/download-artifact@v8
with:
path: /tmp/artifacts
steps:
- name: Checkout code
- uses: actions/checkout@v1
+ uses: actions/checkout@v6
- name: Install build deps
- run: sh .ci/deps.sh
+ run: .ci/deps.sh
- name: Run tests with default settings
- run: CFLAGS=-I/opt/homebrew/include sh .ci/test/run.sh default
+ run: CFLAGS=-I/opt/homebrew/include .ci/test/run.sh default
- name: Run tests without legacy protocol
- run: CFLAGS=-I/opt/homebrew/include sh .ci/test/run.sh nolegacy
+ run: CFLAGS=-I/opt/homebrew/include .ci/test/run.sh nolegacy
if: always()
- name: Run tests with libgcrypt
- run: CFLAGS=-I/opt/homebrew/include sh .ci/test/run.sh gcrypt
+ run: CFLAGS=-I/opt/homebrew/include .ci/test/run.sh gcrypt
if: always()
- name: Upload test results
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v6
with:
name: tests_macos
path: /tmp/logs/tests.*.tar.gz
procps
- name: Checkout code
- uses: actions/checkout@v1
+ uses: actions/checkout@v6
- name: Run tests with default settings
shell: msys2 {0}
- run: sh .ci/test/run.sh default
+ run: .ci/test/run.sh default
- name: Create installer
shell: msys2 {0}
- run: sh .ci/package/build.sh
+ run: .ci/package/build.sh
if: github.ref == 'refs/heads/1.1' || startsWith(github.ref, 'refs/tags/release-')
continue-on-error: true
- name: Upload package
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v6
with:
name: pkg-windows
path: .ci/package/win/tinc-*.exe
- name: Run tests without legacy protocol
shell: msys2 {0}
- run: sh .ci/test/run.sh nolegacy
+ run: .ci/test/run.sh nolegacy
if: always()
- name: Run tests with libgcrypt
shell: msys2 {0}
- run: sh .ci/test/run.sh gcrypt
+ run: .ci/test/run.sh gcrypt
if: always()
- name: Upload test results
- uses: actions/upload-artifact@v4
+ uses: actions/upload-artifact@v6
with:
name: tests_windows
path: /tmp/logs/tests.*.tar.gz
run: pip3 install meson
- name: Checkout code
- uses: actions/checkout@v1
+ uses: actions/checkout@v6
- name: Activate dev environment
uses: ilammy/msvc-dev-cmd@v1