From 57ae2080f5fe4ff57130cd6996638b86f67de6a4 Mon Sep 17 00:00:00 2001 From: Kor Nielsen Date: Fri, 17 Nov 2023 15:40:05 -0800 Subject: [PATCH] Checkpoint --- .github/workflows/fpga.yml | 29 ++++- .github/workflows/nightly-release.yml | 175 ++++++++++++++------------ 2 files changed, 120 insertions(+), 84 deletions(-) diff --git a/.github/workflows/fpga.yml b/.github/workflows/fpga.yml index 7705023bf2..734c399882 100644 --- a/.github/workflows/fpga.yml +++ b/.github/workflows/fpga.yml @@ -6,6 +6,14 @@ on: branches: ["main"] pull_request: workflow_call: + inputs: + trng: + default: external + type: string + rom-logging: + default: true + type: boolean + workflow_dispatch: @@ -68,9 +76,6 @@ jobs: path: /tmp/caliptra-fpga-kmod/ retention-days: 1 - - - build_test_binaries: runs-on: [e2-standard-32] timeout-minutes: 60 @@ -372,6 +377,22 @@ jobs: TEST_BIN=/tmp/caliptra-test-binaries VARS="CPTRA_UIO_NUM=4 CALIPTRA_PREBUILT_FW_DIR=/tmp/caliptra-test-firmware CALIPTRA_IMAGE_NO_GIT_REVISION=1" + if [ "${{ inputs.trng }}" == "external" ] || [ -z "${{ inputs.trng }}" ]; then + echo Using external TRNG + else + echo "Unexpected inputs.trng: ${{ inputs.rom-logging }}" + fi + + if [ "${{ inputs.rom-logging }}" == "true" ] || [ -z "${{ inputs.rom-logging }}" ]; then + export CPTRA_ROM_TYPE=ROM_WITH_UART + elif [ "${{ inputs.rom-logging }}" == false ]; then + export CPTRA_ROM_TYPE=ROM_WITHOUT_UART + else + echo "Unexpected inputs.rom-logging: ${{ inputs.rom-logging }}" + exit 1 + fi + echo CPTRA_ROM_TYPE=${CPTRA_ROM_TYPE} + COMMON_ARGS=( --cargo-metadata="${TEST_BIN}/target/nextest/cargo-metadata.json" --binaries-metadata="${TEST_BIN}/target/nextest/binaries-metadata.json" @@ -400,4 +421,4 @@ jobs: name: caliptra-test-results path: | /tmp/junit.xml - /tmp/nextest-list.json \ No newline at end of file + /tmp/nextest-list.json diff --git a/.github/workflows/nightly-release.yml b/.github/workflows/nightly-release.yml index eb16d369e6..05b6c7013c 100644 --- a/.github/workflows/nightly-release.yml +++ b/.github/workflows/nightly-release.yml @@ -5,92 +5,107 @@ on: schedule: # 2:11 AM PST tuesday-saturday - cron: '11 10 * * 2-6' -permissions: - contents: write - pull-requests: write + pull_request: +#permissions: +# contents: write +# pull-requests: write jobs: - rtl-repo-sync: - name: RTL Repo Sync - uses: ./.github/workflows/rtl-repo-sync.yml +# rtl-repo-sync: +# name: RTL Repo Sync +# uses: ./.github/workflows/rtl-repo-sync.yml - find-latest-release: - name: Find Latest Release - needs: rtl-repo-sync - runs-on: ubuntu-22.04 - outputs: - create_release: ${{ steps.find.outputs.create_release }} - new_release_tag: ${{ steps.find.outputs.new_release_tag }} - release_ref: ${{ steps.find.outputs.release_ref }} +# find-latest-release: +# name: Find Latest Release +# needs: rtl-repo-sync +# runs-on: ubuntu-22.04 +# outputs: +# create_release: ${{ steps.find.outputs.create_release }} +# new_release_tag: ${{ steps.find.outputs.new_release_tag }} +# release_ref: ${{ steps.find.outputs.release_ref }} +# +# steps: +# - uses: actions/checkout@v3 +# with: +# submodules: 'true' +# ref: 'main' +# fetch-depth: 0 +# +# - name: Find latest release +# id: find +# run: | +# DATE="$(date +'%Y%m%d')" +# TAG_PREFIX="release_v" +# TAG_BASE="${TAG_PREFIX}${DATE}_" +# INDEX=0 +# while git tag | grep ${TAG_BASE}${INDEX}; do +# ((INDEX+=1)) +# done +# git submodule update --remote hw-latest/caliptra-rtl +# CHECK_RELEASE_SYNC=$(git status --porcelain | head -1) +# MOST_RECENT_RELEASE=None +# if git tag | grep ${TAG_PREFIX} > /dev/null; then +# MOST_RECENT_RELEASE=$(git tag | grep ${TAG_PREFIX} | sort -r | head -1) +# fi +# if [ "$MOST_RECENT_RELEASE" == "None" ] && [ !"$CHECK_RELEASE_SYNC" ]; then +# echo "create_release=true" >> $GITHUB_OUTPUT +# else +# COMMITS_AFTER_LAST_RELEASE=$(git rev-list --count $MOST_RECENT_RELEASE..HEAD) +# if [[ $COMMITS_AFTER_LAST_RELEASE -gt 0 ]]; then +# echo "create_release=true" >> $GITHUB_OUTPUT +# else +# echo "create_release=false" >> $GITHUB_OUTPUT +# fi +# fi +# echo "new_release_tag=${TAG_BASE}${INDEX}" >> $GITHUB_OUTPUT +# echo "release_ref=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT +# echo "Current ref $(git rev-parse HEAD) will receive tag ${TAG_BASE}${INDEX} after tests" - steps: - - uses: actions/checkout@v3 - with: - submodules: 'true' - ref: 'main' - fetch-depth: 0 - - - name: Find latest release - id: find - run: | - DATE="$(date +'%Y%m%d')" - TAG_PREFIX="release_v" - TAG_BASE="${TAG_PREFIX}${DATE}_" - INDEX=0 - while git tag | grep ${TAG_BASE}${INDEX}; do - ((INDEX+=1)) - done - git submodule update --remote hw-latest/caliptra-rtl - CHECK_RELEASE_SYNC=$(git status --porcelain | head -1) - MOST_RECENT_RELEASE=None - if git tag | grep ${TAG_PREFIX} > /dev/null; then - MOST_RECENT_RELEASE=$(git tag | grep ${TAG_PREFIX} | sort -r | head -1) - fi - if [ "$MOST_RECENT_RELEASE" == "None" ] && [ !"$CHECK_RELEASE_SYNC" ]; then - echo "create_release=true" >> $GITHUB_OUTPUT - else - COMMITS_AFTER_LAST_RELEASE=$(git rev-list --count $MOST_RECENT_RELEASE..HEAD) - if [[ $COMMITS_AFTER_LAST_RELEASE -gt 0 ]]; then - echo "create_release=true" >> $GITHUB_OUTPUT - else - echo "create_release=false" >> $GITHUB_OUTPUT - fi - fi - echo "new_release_tag=${TAG_BASE}${INDEX}" >> $GITHUB_OUTPUT - echo "release_ref=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT - echo "Current ref $(git rev-parse HEAD) will receive tag ${TAG_BASE}${INDEX} after tests" - - fpga-full-suite: + fpga-full-suite-etrng-log: name: FPGA Suite - needs: find-latest-release - if: needs.find-latest-release.outputs.create_release +# needs: find-latest-release +# if: needs.find-latest-release.outputs.create_release uses: ./.github/workflows/fpga.yml + with: + trng: external + rom-logging: true - create-release: - name: Create New Release - needs: [find-latest-release, fpga-full-suite] - runs-on: ubuntu-22.04 - - steps: - - uses: actions/checkout@v3 - with: - submodules: 'true' - ref: ${{ needs.find-latest-release.outputs.release_ref }} - - - name: Generate release zip - run: | - ./ci-tools/release/build_release.sh ${{ needs.find-latest-release.outputs.new_release_tag }} - mv ./release/release.zip ./release/caliptra_${{ needs.find-latest-release.outputs.new_release_tag }}.zip + fpga-full-suite-etrng-nolog: + name: FPGA Suite +# needs: find-latest-release +# if: needs.find-latest-release.outputs.create_release + uses: ./.github/workflows/fpga.yml + with: + trng: external + rom-logging: false + - - name: Tag repo with new release number - run: | - git config --global user.name "GitHub CI" - git config --global user.email "username@users.noreply.github.com" - git tag ${{ needs.find-latest-release.outputs.new_release_tag }} - git push origin ${{ needs.find-latest-release.outputs.new_release_tag }} - - name: Upload release - uses: softprops/action-gh-release@v1 - with: - files: ./release/caliptra_${{ needs.find-latest-release.outputs.new_release_tag }}.zip - tag_name: ${{ needs.find-latest-release.outputs.new_release_tag }} +# create-release: +# name: Create New Release +# needs: [find-latest-release, fpga-full-suite] +# runs-on: ubuntu-22.04 +# +# steps: +# - uses: actions/checkout@v3 +# with: +# submodules: 'true' +# ref: ${{ needs.find-latest-release.outputs.release_ref }} +# +# - name: Generate release zip +# run: | +# ./ci-tools/release/build_release.sh ${{ needs.find-latest-release.outputs.new_release_tag }} +# mv ./release/release.zip ./release/caliptra_${{ needs.find-latest-release.outputs.new_release_tag }}.zip +# +# - name: Tag repo with new release number +# run: | +# git config --global user.name "GitHub CI" +# git config --global user.email "username@users.noreply.github.com" +# git tag ${{ needs.find-latest-release.outputs.new_release_tag }} +# git push origin ${{ needs.find-latest-release.outputs.new_release_tag }} +# +# - name: Upload release +# uses: softprops/action-gh-release@v1 +# with: +# files: ./release/caliptra_${{ needs.find-latest-release.outputs.new_release_tag }}.zip +# tag_name: ${{ needs.find-latest-release.outputs.new_release_tag }}