added all the files #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "CI" | |
on: [push] | |
jobs: | |
Ubuntu: | |
runs-on: ubuntu-latest | |
outputs: | |
cache_misses: ${{ env.cache_misses }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install required packages | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install apt-utils | |
sudo apt-get -y install git gcc g++ cmake python3 make ninja-build | |
sudo apt-get -y install tcpdump libgsl-dev libxml2-dev | |
sudo apt-get -y install curl unzip tar | |
sudo apt-get -y install ccache | |
- name: Get timestamp | |
id: time | |
run: python3 -c "from datetime import datetime; print('time='+datetime.now().strftime('%Y-%m-%d-%H-%M-%S'))" >> $GITHUB_ENV | |
- name: Restore ccache | |
id: ccache | |
uses: actions/cache@v3 | |
with: | |
path: .ccache | |
key: ubuntu-ci-${{env.time}} | |
restore-keys: ubuntu-ci- | |
- name: Setup ccache | |
run: | | |
ccache --set-config=cache_dir="$GITHUB_WORKSPACE/.ccache" | |
ccache --set-config=max_size=400M | |
ccache --set-config=compression=true | |
ccache -z | |
- name: Configure CMake | |
run: | | |
./ns3 configure -d release --enable-asserts --enable-examples --enable-tests --disable-werror -G"Ninja" | |
- name: Build ns-3 | |
run: | | |
./ns3 build | |
- name: Print ccache statistics | |
id: ccache_results | |
run: | | |
ccache -s | |
python3 -c "import re, subprocess;print('cache_misses=%d' % int(re.findall('cache_miss(.*)', subprocess.check_output(['ccache', '--print-stats']).decode())[0]))" >> $GITHUB_ENV | |
- name: Run tests and examples | |
if: env.cache_misses != '0' | |
run: python3 test.py --no-build | |
CodeQL: | |
runs-on: ubuntu-latest | |
needs: Ubuntu | |
if: ${{ (needs.Ubuntu.outputs.cache_misses != '0') && (github.repository == 'nsnam/ns-3-dev-git') }} | |
strategy: | |
fail-fast: false | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
# Initializes the CodeQL tools for scanning. | |
- name: Initialize CodeQL | |
uses: github/codeql-action/init@v2 | |
with: | |
languages: 'cpp' | |
- name: Install required packages | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install apt-utils | |
sudo apt-get -y install git gcc g++ cmake python3 make ninja-build | |
sudo apt-get -y install tcpdump libgsl-dev libxml2-dev | |
sudo apt-get -y install curl unzip tar | |
sudo apt-get -y install ccache | |
- name: Get timestamp | |
id: time | |
run: python3 -c "from datetime import datetime; print('time='+datetime.now().strftime('%Y-%m-%d-%H-%M-%S'))" >> $GITHUB_ENV | |
- name: Restore ccache | |
id: ccache | |
uses: actions/cache@v3 | |
with: | |
path: .ccache | |
key: ubuntu-codeql-${{env.time}} | |
restore-keys: ubuntu-codeql- | |
- name: Setup ccache | |
run: | | |
ccache --set-config=cache_dir="$GITHUB_WORKSPACE/.ccache" | |
ccache --set-config=max_size=400M | |
ccache --set-config=compression=true | |
ccache -z | |
- name: Configure CMake | |
run: | | |
./ns3 configure -d release --enable-asserts --enable-examples --enable-tests --disable-werror -G"Ninja" | |
- name: Build ns-3 | |
run: | | |
./ns3 build | |
- name: Perform CodeQL Analysis | |
uses: github/codeql-action/analyze@v2 | |
Codecov: | |
runs-on: ubuntu-latest | |
needs: Ubuntu | |
if: needs.Ubuntu.outputs.cache_misses != '0' | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install required packages | |
run: | | |
sudo apt-get update | |
sudo apt-get -y install apt-utils | |
sudo apt-get -y install git gcc g++ cmake python3 make ninja-build | |
sudo apt-get -y install tcpdump libgsl-dev libxml2-dev | |
sudo apt-get -y install curl unzip tar | |
sudo apt-get -y install ccache | |
sudo apt-get -y install lcov | |
- name: Get timestamp | |
id: time | |
run: python3 -c "from datetime import datetime; print('time='+datetime.now().strftime('%Y-%m-%d-%H-%M-%S'))" >> $GITHUB_ENV | |
- name: Restore ccache | |
id: ccache | |
uses: actions/cache@v3 | |
with: | |
path: .ccache | |
key: ubuntu-coverage-${{env.time}} | |
restore-keys: ubuntu-coverage- | |
- name: Setup ccache | |
run: | | |
ccache --set-config=cache_dir="$GITHUB_WORKSPACE/.ccache" | |
ccache --set-config=max_size=400M | |
ccache --set-config=compression=true | |
ccache -z | |
- name: Configure CMake | |
run: | | |
./ns3 configure --enable-asserts --enable-examples --enable-tests --disable-werror --enable-gcov -G"Ninja" | |
- name: Build ns-3 | |
run: | | |
./ns3 build | |
- name: Print ccache statistics | |
id: ccache_results | |
run: | | |
ccache -s | |
python3 -c "import re, subprocess;print('cache_misses=%d' % int(re.findall('cache_miss(.*)', subprocess.check_output(['ccache', '--print-stats']).decode())[0]))" >> $GITHUB_ENV | |
- name: Generate coverage data and submit to codecov.io | |
if: env.cache_misses != '0' | |
run: | | |
./ns3 build coverage_gcc | |
cd ./build/coverage | |
bash <(curl -s https://codecov.io/bash) -f ns3.info || echo "Codecov did not collect coverage reports" | |
Windows_MinGW: | |
runs-on: windows-latest | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: msys2/setup-msys2@v2 | |
- name: Install required msys2/mingw64 packages | |
run: | | |
pacman -S --noconfirm \ | |
unzip \ | |
tar \ | |
mingw-w64-x86_64-curl \ | |
mingw-w64-x86_64-binutils \ | |
mingw-w64-x86_64-cmake \ | |
mingw-w64-x86_64-gcc \ | |
mingw-w64-x86_64-ninja \ | |
mingw-w64-x86_64-python \ | |
mingw-w64-x86_64-ccache \ | |
mingw-w64-x86_64-gsl \ | |
mingw-w64-x86_64-libxml2 \ | |
mingw-w64-x86_64-lld \ | |
mingw-w64-x86_64-sed | |
pacman --noconfirm -Scc | |
- name: Get timestamp | |
id: time | |
run: python3 -c "from datetime import datetime; print('time='+datetime.now().strftime('%Y-%m-%d-%H-%M-%S'))" >> $GITHUB_ENV | |
- name: Restore ccache | |
id: ccache | |
uses: actions/cache@v3 | |
with: | |
path: .ccache | |
key: msys2-${{env.time}} | |
restore-keys: msys2- | |
- name: Setup ccache | |
run: | | |
ccache --set-config=cache_dir="$GITHUB_WORKSPACE/.ccache" | |
ccache --set-config=max_size=400M | |
ccache --set-config=compression=true | |
ccache -z | |
- name: Configure CMake | |
run: | | |
python3 ns3 configure -d release --enable-asserts --enable-examples --enable-tests --disable-werror -G"Ninja" | |
- name: Build ns-3 | |
run: | | |
python3 ns3 build | |
- name: Print ccache statistics | |
id: ccache_results | |
run: | | |
ccache -s | |
python3 -c "import re, subprocess;print('cache_misses=%d' % int(re.findall('cache_miss(.*)', subprocess.check_output(['ccache', '--print-stats']).decode())[0]))" >> $GITHUB_ENV | |
- name: Run tests and examples | |
if: env.cache_misses != '0' | |
run: python3 test.py --no-build | |
Mac_OS_X: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install required packages | |
run: | | |
brew install ninja cmake ccache libxml2 gsl open-mpi #qt5 | |
- name: Get timestamp | |
id: time | |
run: python3 -c "from datetime import datetime; print('time='+datetime.now().strftime('%Y-%m-%d-%H-%M-%S'))" >> $GITHUB_ENV | |
- name: Restore ccache | |
id: ccache | |
uses: actions/cache@v3 | |
with: | |
path: .ccache | |
key: osx_brew-ci-${{env.time}} | |
restore-keys: osx_brew-ci- | |
- name: Setup ccache | |
run: | | |
export PATH=/usr/local/bin:$PATH #:/usr/local/opt/qt/bin | |
ccache --set-config=cache_dir="$GITHUB_WORKSPACE/.ccache" | |
ccache --set-config=max_size=400M | |
ccache --set-config=compression=true | |
ccache -z | |
- name: Configure CMake | |
run: | | |
export PATH=/usr/local/bin:$PATH #:/usr/local/opt/qt/bin | |
./ns3 configure -d release --enable-asserts --enable-examples --enable-tests --disable-werror -G"Ninja" | |
- name: Build ns-3 | |
run: | | |
export PATH="$PATH" #:/usr/local/opt/qt/bin | |
./ns3 build | |
- name: Print ccache statistics | |
id: ccache_results | |
run: | | |
ccache -s | |
python3 -c "import re, subprocess;print('cache_misses=%d' % int(re.findall('cache_miss(.*)', subprocess.check_output(['ccache', '--print-stats']).decode())[0]))" >> $GITHUB_ENV | |
- name: Run tests and examples | |
if: env.cache_misses != '0' | |
run: ./test.py --no-build |