Simplified CI for tutorials + Tutorial Docs #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: chipyard-tutorials | |
# TODO: figure out when to run tutorials | |
on: | |
# run ci on pull requests targeting following branches (runs on the merge commit) | |
pull_request: | |
branches: | |
- main | |
- '1.[0-9]*.x' | |
# nicer shell to run commands in | |
defaults: | |
run: | |
shell: bash -leo pipefail {0} | |
env: | |
CHIPYARD_DIR: ${{ secrets.BUILDDIR }}/cy-ci-shared/cy-${{ github.sha }} | |
JAVA_TMP_DIR: /tmp/cy-${{ github.sha }}-full | |
jobs: | |
cancel-prior-workflows: | |
name: cancel-prior-workflows | |
runs-on: ubuntu-latest | |
steps: | |
- name: Cancel Previous Runs | |
uses: styfle/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
setup-chipyard-tutorial: | |
name: nice name | |
needs: [cancel-prior-workflows] | |
runs-on: as4 | |
steps: | |
# workaround actions/checkout not 'cleaning' submodules on new checkouts. see https://github.com/actions/checkout/issues/358 | |
- name: Delete old checkout | |
run: | | |
rm -rf ${{ github.workspace }}/* || true | |
rm -rf ${{ github.workspace }}/.* || true | |
- uses: actions/checkout@v3 | |
# copy repository to globally visible area (useful for if tutorials need to be split across multiple GH-A jobs). | |
# in this case, a tutorial run is within a single GH-A job so you could just use the $GITHUB_WORKSPACE | |
- name: Setup repository | |
run: | | |
git clone ${{ github.workspace }} $CHIPYARD_DIR | |
mkdir $JAVA_TMP_DIR | |
# TODO: should/could be autogenerated from the docs | |
# a script with all the tutorial commands | |
- name: Run tutorial | |
run: | | |
cd $CHIPYARD_DIR # cd's into globally visible directory 1st (otherwise would run out of the $GITHUB_WORKSPACE which is per-job) | |
scripts/tutorial-first-verilog-build.sh | |
- name: Delete repository (and other misc. data) | |
if: ${{ always() }} # always run at the end | |
run: | | |
rm -rf ${{ env.REMOTE_WORK_DIR }} | |
rm -rf ${{ env.JAVA_TMP_DIR }} |