Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: add az-tdx-vtpm workflow for e2e tests #323

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/kbs-e2e-az-snp-vtpm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ jobs:

checkout-and-rebase:
runs-on: ubuntu-latest
needs: authorize
steps:
- name: Checkout Code
uses: actions/checkout@v4
Expand Down
64 changes: 64 additions & 0 deletions .github/workflows/kbs-e2e-az-tdx-vtpm.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: KBS e2e with az-tdx-vtpm TEE

on:
push:
branches:
- main
# Note on repository checkout: pull_request_target sets `GITHUB_SHA` to the
# "last commit on the PR base branch", meaning that by default `actions/checkout`
# is going to checkout the repository main branch. In order to pick up the pull
# request code, this workflow uses the `github.event.pull_request.head.sha`
# property to get the last commit on the HEAD branch. One limitation of this approach
# is that, unlike the `pull_request` event, the checked pull request isn't necessarily
# rebased to main (so it is up to the workflow to ensure the pull request is rebased
# **before* the workflow is triggering)
pull_request_target:
types:
- opened
- synchronize
- reopened
# This workflow will be run if the pull request is labeled 'test_e2e'
- labeled
branches:
- 'main'

jobs:
authorize:
runs-on: ubuntu-latest
if: github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'test_e2e')
steps:
- run: "true"

checkout-and-rebase:
mkulke marked this conversation as resolved.
Show resolved Hide resolved
runs-on: ubuntu-latest
needs: authorize
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
# fetch main on push, otherwise the head of the PR
ref: ${{ github.event_name == 'push' && 'main' || github.event.pull_request.head.sha }}

- name: Rebase the source
if: github.event_name != 'push'
run: |
git config --global user.name "GH Actions Workflow"
git config --global user.email "<rebase@gh-actions-workflow>"
./kbs/hack/ci-helper.sh rebase-atop-of-the-latest-target-branch

- name: Archive source
run: git archive -o kbs.tar.gz HEAD

- uses: actions/upload-artifact@v4
with:
path: ./kbs.tar.gz

e2e-test:
needs:
- authorize
- checkout-and-rebase
uses: ./.github/workflows/kbs-e2e.yaml
with:
runs-on: '["self-hosted","azure-cvm-tdx"]'
tarball: kbs.tar.gz
6 changes: 6 additions & 0 deletions .github/workflows/kbs-e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,12 @@ jobs:
target/
key: rust-${{ hashFiles('./Cargo.lock') }}

- name: Set up SGX/TDX certificates cache
uses: actions/cache@v4
with:
path: /root/.dcap-qcnl
mkulke marked this conversation as resolved.
Show resolved Hide resolved
key: ${{ runner.os }}-dcap-qcnl

- name: Install dependencies
working-directory: kbs/test
run: |
Expand Down
8 changes: 7 additions & 1 deletion kbs/test/Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
OS := $(shell lsb_release -si)
RELEASE := $(shell lsb_release -sr)
SGX_REPO_URL := https://download.01.org/intel-sgx/sgx_repo/ubuntu
SGX_COLLATERAL_URL := https://api.trustedservices.intel.com/sgx/certification/v4/
SGX_QCNL_CONFIG := /etc/sgx_default_qcnl.conf
KBS_REPO_PATH := ./data/repository
KBS_CONFIG_PATH := ./data/e2e
MAKEFILE_DIR := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))
Expand All @@ -26,13 +28,17 @@ install-dependencies:
build-essential \
clang \
libsgx-dcap-default-qpl \
libsgx-dcap-quote-verify \
libsgx-dcap-quote-verify-dev \
libsgx-urts \
libssl-dev \
libtdx-attest \
libtdx-attest-dev \
libtss2-dev \
openssl \
pkg-config \
protobuf-compiler
protobuf-compiler && \
echo '{"collateral_service": "$(SGX_COLLATERAL_URL)"}' | sudo tee $(SGX_QCNL_CONFIG)

kbs:
cd $(PROJECT_DIR) && \
Expand Down
Loading