Skip to content

Integration Tests on ARM64 #3934

Integration Tests on ARM64

Integration Tests on ARM64 #3934

name: Integration Tests on ARM64
on:
workflow_call:
workflow_run:
workflows: ["Test"]
types:
- completed
pull_request:
branches:
- main
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
skip-check:
name: Skip check
continue-on-error: true
runs-on: nscloud-ubuntu-22.04-amd64-4x16
outputs:
should_skip: ${{ steps.skip-check.outputs.should_skip }}
permissions:
actions: write
contents: read
steps:
- id: skip-check
uses: fkirc/skip-duplicate-actions@f75f66ce1886f00957d99748a42c724f4330bdcf # v5.3.1
with:
do_not_skip: '["schedule", "workflow_dispatch"]'
paths: |-
[
".github/workflows/test-integration-arm64.yml",
"test/integration/**",
"*.go",
".go-version",
"3rdparty",
"Makefile",
"bpf/**",
"go.mod",
"go.sum"
]
skip_after_successful_duplicate: false
integration-tests:
name: Integration Tests on ARM64
runs-on:
- nscloud-ubuntu-22.04-arm64-4x16
- nscloud-exp-features:privileged;host-pid-namespace
if: ${{ github.event.workflow_run.conclusion == 'success' }} && ${{ needs.skip-check.outputs.should_skip != 'true' }}
steps:
- name: Check out the code
uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- name: Kernel Version
run: uname -a
- name: Kernel Config
run: |
if [ -f /boot/config-$(uname -r) ]; then cat /boot/config-$(uname -r); fi
if [ -f /proc/config.gz ]; then zcat /proc/config.gz; fi
- name: Set up Go
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version-file: .go-version
- name: Set up Clang
run: |
sudo apt-get update -y
sudo apt-get install -y llvm-14 clang-14 lld-14
sudo ln -s -f /usr/bin/clang-14 /usr/bin/clang
sudo ln -s -f /usr/bin/ld.lld-14 /usr/bin/ld.lld
sudo ln -s -f /usr/bin/llc-14 /usr/bin/llc
- run: |
clang --version
ld.lld --version
- name: Install libbpf dependencies
run: |
sudo apt-get update -y
sudo apt-get install -yq libelf-dev zlib1g-dev libzstd-dev
- name: Initialize and update git submodules
run: git submodule init && git submodule update
- name: Install Go dependencies
run: make go/deps
- name: Build libbpf
run: make libbpf
- name: Build BPF
run: make bpf
- name: Integration Tests (Native)
run: GOMODCACHE=$(go env GOMODCACHE) make GO=`which go` test/integration/native
- name: Integration Tests (Python)
if: ${{ always() }}
run: GOMODCACHE=$(go env GOMODCACHE) make GO=`which go` test/integration/python
- name: Integration Tests (Ruby)
if: ${{ always() }}
run: GOMODCACHE=$(go env GOMODCACHE) make GO=`which go` test/integration/ruby
- name: Integration Tests (Java)
if: ${{ always() }}
run: GOMODCACHE=$(go env GOMODCACHE) make GO=`which go` test/integration/java