-
Notifications
You must be signed in to change notification settings - Fork 616
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bump versions of Github actions to versions using Node 20 (#4116)
Node 16 is deprecated and will eventually stop being supported. (cherry picked from commit 99aa9f1) # Conflicts: # .github/workflows/build-scala-cli-example.yml # .github/workflows/ci.yml # .github/workflows/install-jextract/action.yml # .github/workflows/scala-cli-example.yml # .github/workflows/test.yml
- Loading branch information
1 parent
54ee5f8
commit 284d69c
Showing
11 changed files
with
304 additions
and
11 deletions.
There are no files selected for viewing
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
name: Build and Test Chisel Scala-CLI Example | ||
|
||
on: | ||
workflow_call: | ||
inputs: | ||
circt: | ||
description: 'The version of CIRCT to use' | ||
type: string | ||
|
||
jobs: | ||
build_example: | ||
name: Build and Test | ||
runs-on: ubuntu-22.04 | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
# Need to fetch full history for deriving version | ||
with: | ||
fetch-depth: 0 | ||
- name: Install CIRCT | ||
id: install-circt | ||
if: ${{ inputs.circt }} | ||
uses: circt/install-circt@v1.1.1 | ||
with: | ||
version: ${{ inputs.circt }} | ||
github-token: ${{ github.token }} | ||
# TODO have install-circt do this | ||
- name: Set CHISEL_FIRTOOL_PATH | ||
if: steps.install-circt.outcome == 'success' | ||
run: | | ||
dir=$(dirname $(which firtool)) | ||
echo "CHISEL_FIRTOOL_PATH=$dir" >> "$GITHUB_ENV" | ||
- name: Cache Scala-CLI | ||
uses: coursier/cache-action@v6 | ||
- name: Setup Scala-CLI | ||
uses: VirtusLab/scala-cli-setup@v1 | ||
with: | ||
jvm: adoptium:17 | ||
apps: sbt | ||
- name: Generate Chisel Scala CLI Example | ||
shell: bash | ||
run: | | ||
# Determine the version and insert it into the example | ||
sbt emitVersion | ||
VERSION=$(cat version.txt) | ||
sed "s/@VERSION@/$VERSION/g" .github/workflows/build-scala-cli-example/chisel-example.scala > chisel-example.scala | ||
# If the version does NOT contain SNAPSHOT, remove line including snapshots repo | ||
if ! grep -qi 'snapshot' <<< $VERSION; then | ||
sed -i '1d' chisel-example.scala | ||
fi | ||
# Need to publishLocal to test the example | ||
- name: Publish Local | ||
shell: bash | ||
run: sbt "unipublish / publishLocal" | ||
- name: Test Scala CLI Example | ||
shell: bash | ||
run: scala-cli chisel-example.scala | ||
- name: Upload Example | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: chisel-example.scala | ||
path: chisel-example.scala | ||
retention-days: 7 |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
name: Continuous Integration | ||
|
||
on: | ||
workflow_dispatch: | ||
pull_request: | ||
branches-ignore: | ||
- ci/ci-circt-nightly | ||
push: | ||
tags: | ||
- '*' | ||
branches: | ||
- main | ||
- '*.x' | ||
|
||
jobs: | ||
ci: | ||
name: ci | ||
strategy: | ||
matrix: | ||
system: ["ubuntu-22.04"] | ||
jvm: [8] | ||
scala: ["2.13.14"] | ||
espresso: ["2.4"] | ||
uses: ./.github/workflows/test.yml | ||
with: | ||
system: ${{ matrix.system }} | ||
jvm: ${{ matrix.jvm }} | ||
scala: ${{ matrix.scala }} | ||
espresso: ${{ matrix.espresso }} | ||
|
||
# Sentinel job to simplify how we specify which checks need to pass in branch | ||
# protection and in Mergify. This job checks that all matrix jobs were | ||
# successful. | ||
check-tests: | ||
name: "check tests" | ||
needs: ci | ||
runs-on: ubuntu-22.04 | ||
outputs: | ||
success: ${{ steps.setoutput.outputs.success }} | ||
steps: | ||
- id: setoutput | ||
run: echo "success=true" >> $GITHUB_OUTPUT | ||
|
||
# Related to check-tests above, this job _always_ runs (even if tests fail | ||
# and thus check-steps is skipped). This two sentinel job approach avoids an | ||
# issue where failing tests causes a single sentinel job to be skipped which | ||
# counts as passing for purposes of branch protection. | ||
# | ||
# See: https://brunoscheufler.com/blog/2022-04-09-the-required-github-status-check-that-wasnt | ||
all_tests_passed: | ||
name: "all tests passed" | ||
runs-on: ubuntu-22.04 | ||
if: always() # Always run so that we never skip this check | ||
needs: check-tests | ||
# Pass only if check-tests set its output value | ||
steps: | ||
- run: | | ||
PASSED=${{ needs.check-tests.outputs.success }} | ||
if [[ $PASSED == "true" ]]; then | ||
echo "### All tests passed! :rocket:" >> $GITHUB_STEP_SUMMARY | ||
exit 0 | ||
else | ||
echo "### One or more tests FAILED! :bangbang:" >> $GITHUB_STEP_SUMMARY | ||
exit 1 | ||
fi | ||
# sbt ci-release publishes all cross versions so this job needs to be | ||
# separate from a Scala versions build matrix to avoid duplicate publishing | ||
publish: | ||
needs: [all_tests_passed] | ||
runs-on: ubuntu-22.04 | ||
if: github.event_name == 'push' | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
- name: Cache Scala | ||
uses: coursier/cache-action@v6 | ||
- name: Setup Scala | ||
uses: VirtusLab/scala-cli-setup@v1 | ||
with: | ||
jvm: adopt:8 | ||
apps: sbt | ||
- name: Publish | ||
run: sbt ci-release | ||
env: | ||
CI_SNAPSHOT_RELEASE: "+unipublish/publish" | ||
CI_SONATYPE_RELEASE: "+unipublish/publishSigned" | ||
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} | ||
PGP_SECRET: ${{ secrets.PGP_SECRET }} | ||
SONATYPE_PASSWORD: ${{ secrets.CHIPSALLIANCE_SONATYPE_PASSWORD }} | ||
SONATYPE_USERNAME: ${{ secrets.CHIPSALLIANCE_SONATYPE_USERNAME }} | ||
- run: | | ||
sbt emitVersion | ||
echo "Published version: $(cat version.txt)" >> $GITHUB_STEP_SUMMARY | ||
deploy_website: | ||
name: Deploy Website | ||
runs-on: ubuntu-22.04 | ||
needs: [all_tests_passed] | ||
# Only Deploy website on pushes to main, may change to a stable branch | ||
if: (github.event_name == 'push') && (github.ref_name == 'main') | ||
steps: | ||
- name: Download built website | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: website | ||
- name: Untar built website | ||
run: tar zxf website.tar.gz | ||
- name: Deploy Website to GitHub Pages (From Main Branch) | ||
uses: peaceiris/actions-gh-pages@v4 | ||
with: | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
publish_dir: website/build |
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
name: Install Jextract | ||
|
||
inputs: | ||
file-name: | ||
description: 'File name to install' | ||
required: false | ||
default: 'openjdk-21-jextract+1-2_linux-x64_bin.tar.gz' | ||
|
||
runs: | ||
using: composite | ||
steps: | ||
- id: cache-jextract | ||
uses: actions/cache@v4 | ||
with: | ||
path: jextract | ||
key: jextract-${{ runner.os }}-${{ inputs.file-name }} | ||
|
||
- shell: bash | ||
if: steps.cache-jextract.outputs.cache-hit != 'true' | ||
run: | | ||
mkdir -p jextract | ||
cd jextract | ||
wget -q https://download.java.net/java/early_access/jextract/21/1/${{ inputs.file-name }} | ||
tar xzf ${{ inputs.file-name }} | ||
- shell: bash | ||
run: | | ||
cd jextract | ||
DIR_NAME=$(ls -d jextract-*/ | head -c-2) | ||
./$DIR_NAME/bin/jextract --version | ||
echo "$(pwd)/$DIR_NAME/bin" >> $GITHUB_PATH |
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
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
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
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
Oops, something went wrong.