Skip to content

Commit

Permalink
Checkpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
korran committed Nov 18, 2023
1 parent c08a136 commit 57ae208
Show file tree
Hide file tree
Showing 2 changed files with 120 additions and 84 deletions.
29 changes: 25 additions & 4 deletions .github/workflows/fpga.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:


Expand Down Expand Up @@ -68,9 +76,6 @@ jobs:
path: /tmp/caliptra-fpga-kmod/
retention-days: 1




build_test_binaries:
runs-on: [e2-standard-32]
timeout-minutes: 60
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -400,4 +421,4 @@ jobs:
name: caliptra-test-results
path: |
/tmp/junit.xml
/tmp/nextest-list.json
/tmp/nextest-list.json
175 changes: 95 additions & 80 deletions .github/workflows/nightly-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 "[email protected]"
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 "[email protected]"
# 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 }}

0 comments on commit 57ae208

Please sign in to comment.