demikernel 1.5.13

Kernel-Bypass LibOS Architecture
Documentation
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT license.

name: Main Catmem

concurrency:
  group: catmem
  cancel-in-progress: false

on:
  pull_request:
    types: [opened, synchronize]
  push:
    branches:
      - main
      - unstable
      - dev

env:
  LIBOS: catmem
  SERVER: ${{ secrets.CATMEM_HOSTNAME_A }}
  CLIENT: ${{ secrets.CATMEM_HOSTNAME_A }}
  SERVER_ADDR: 10.3.1.30
  CLIENT_ADDR: 10.3.1.30

jobs:

  debug-pipeline:
    name: Debug Pipeline
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
    - name: Setup SSH
      shell: bash
      run: |
        mkdir -p $HOME/.ssh/
        echo "${{ secrets.SSHKEY }}" > "$HOME/.ssh/id_rsa"
        chmod 400 $HOME/.ssh/id_rsa
        echo "Host *" > $HOME/.ssh/config
        echo -e "\tStrictHostKeyChecking no" >> $HOME/.ssh/config
        echo -e "\tIdentityFile $HOME/.ssh/id_rsa" >> $HOME/.ssh/config
        echo -e "\tIdentitiesOnly yes" >> $HOME/.ssh/config
        echo -e "\tPasswordAuthentication no" >> $HOME/.ssh/config
        echo -e "\tUser ${{ secrets.USERNAME }}" >> $HOME/.ssh/config
        echo -e "\tPort ${{ secrets.PORTNUM }}" >> $HOME/.ssh/config
    - name: Run
      run: |
        if [[ "${{ github.event_name }}" == "pull_request" ]]; then
          branch_name="${{ github.head_ref }}"
        else
          branch_name="${{ github.ref_name }}"
        fi
        python3 tools/demikernel_ci.py \
          --platform linux \
          --server $SERVER \
          --client $CLIENT \
          --repository demikernel \
          --branch origin/$branch_name \
          --libos $LIBOS \
          --debug \
          --test-unit --test-integration --test-system all \
          --delay 2 --enable-nfs \
          --server-addr $SERVER_ADDR \
          --client-addr $CLIENT_ADDR
    - name: Archive Logs
      if: always()
      uses: actions/upload-artifact@v4
      with:
        name: debug-pipeline-logs
        path: |
          **/*.stdout.txt
          **/*.stderr.txt

  release-pipeline:
    name: Release Pipeline
    needs: debug-pipeline
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
    - name: Setup SSH
      shell: bash
      run: |
        mkdir -p $HOME/.ssh/
        echo "${{ secrets.SSHKEY }}" > "$HOME/.ssh/id_rsa"
        chmod 400 $HOME/.ssh/id_rsa
        echo "Host *" > $HOME/.ssh/config
        echo -e "\tStrictHostKeyChecking no" >> $HOME/.ssh/config
        echo -e "\tIdentityFile $HOME/.ssh/id_rsa" >> $HOME/.ssh/config
        echo -e "\tIdentitiesOnly yes" >> $HOME/.ssh/config
        echo -e "\tPasswordAuthentication no" >> $HOME/.ssh/config
        echo -e "\tUser ${{ secrets.USERNAME }}" >> $HOME/.ssh/config
        echo -e "\tPort ${{ secrets.PORTNUM }}" >> $HOME/.ssh/config
    - name: Run
      run: |
        if [[ "${{ github.event_name }}" == "pull_request" ]]; then
          branch_name="${{ github.head_ref }}"
        else
          branch_name="${{ github.ref_name }}"
        fi
        python3 tools/demikernel_ci.py \
          --platform linux \
          --server $SERVER \
          --client $CLIENT \
          --repository demikernel \
          --branch origin/$branch_name \
          --libos $LIBOS \
          --test-unit --test-integration --test-system all \
          --delay 2 --enable-nfs \
          --server-addr $SERVER_ADDR \
          --client-addr $CLIENT_ADDR
    - name: Archive Logs
      if: always()
      uses: actions/upload-artifact@v4
      with:
        name: release-pipeline-logs
        path: |
          **/*.stdout.txt
          **/*.stderr.txt