testing ci #42
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: "build" | |
on: | |
push: | |
branches: | |
- release | |
jobs: | |
draft_release: | |
name: Create Release | |
runs-on: ubuntu-latest | |
outputs: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Create Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ github.ref }} | |
release_name: Release ${{ github.ref }} | |
body: | | |
🚀 This release contains necessary binaries to install over-the-wire on different platforms. See README.md of this repo for more details. | |
draft: true | |
prerelease: false | |
build: | |
needs: [draft_release] | |
name: "Build" | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Install coreutils for macOS | |
if: matrix.os == 'macos-latest' | |
run: brew install coreutils | |
- name: Install Zip | |
if: matrix.os == 'windows-latest' | |
run: choco install zip | |
- name: Set up Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.x' | |
- name: Install libpcap on Ubuntu | |
if: matrix.os == 'ubuntu-latest' | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libpcap-dev | |
- name: Install libpcap on macOS | |
if: matrix.os == 'macos-latest' | |
run: | | |
brew update | |
brew install libpcap | |
- name: Install npcap on Windows | |
if: matrix.os == 'windows-latest' | |
run: | | |
choco install wget --no-progress | |
mkdir -p build/Release/npcap | |
wget "https://npcap.com/dist/npcap-sdk-1.13.zip" | |
unzip npcap-sdk-1.13.zip -d build/Release/npcap | |
shell: bash | |
- name: Install npcap on Windows (step 2) | |
if: matrix.os == 'windows-latest' | |
run: | | |
set NPCAP_FILE=npcap-0.96.exe | |
curl -L https://npcap.com/dist/%NPCAP_FILE% --output %NPCAP_FILE% | |
%NPCAP_FILE% /S /winpcap_mode | |
xcopy C:\Windows\System32\Npcap\*.dll C:\Windows\System32 | |
xcopy C:\Windows\SysWOW64\Npcap\*.dll C:\Windows\SysWOW64 | |
shell: cmd | |
- name: Submodule update | |
run: git submodule update --init --recursive | |
shell: bash | |
- name: Build and Test (Windows) | |
if: matrix.os == 'windows-latest' | |
run: | | |
ls "$(pwd)/build/Release/npcap" | |
PCAP_ROOT="$(pwd)/build/Release/npcap" npm i | |
PCAP_ROOT="$(pwd)/build/Release/npcap" npm run build | |
node --test test/liveDevice.test.js test/arpTable.test.js test/routing.test.js | |
shell: bash | |
- name: Build and Test | |
if: matrix.os != 'windows-latest' | |
run: | | |
npm i | |
npm run build | |
npm run test | |
shell: bash | |
- name: Prebuild (Windows) | |
if: matrix.os == 'windows-latest' | |
run: | | |
PCAP_ROOT="$(pwd)/build/Release/npcap" npm run precompile | |
ls prebuilds | |
zip -r prebuilds-${{ matrix.os }}.zip prebuilds | |
shell: bash | |
- name: Prebuild | |
if: matrix.os != 'windows-latest' | |
run: | | |
npm run precompile | |
ls prebuilds | |
zip -r prebuilds-${{ matrix.os }}.zip prebuilds | |
shell: bash | |
- name: ls | |
run: ls | |
shell: bash | |
- name: Upload | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ needs.draft_release.outputs.upload_url }} | |
asset_path: prebuilds-${{ matrix.os }}.zip | |
asset_name: prebuilds-${{ matrix.os }}.zip | |
asset_content_type: application/zip |