Skip to content

Commit

Permalink
Bump versions of Github actions to versions using Node 20 (#4116)
Browse files Browse the repository at this point in the history
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
jackkoenig authored and mergify[bot] committed May 30, 2024
1 parent 54ee5f8 commit 284d69c
Show file tree
Hide file tree
Showing 11 changed files with 304 additions and 11 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/backport-fixup.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
original_pr: ${{ steps.original.outputs.pr }}

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Figure out backport PR number
id: backport
run: |
Expand Down Expand Up @@ -57,7 +57,7 @@ jobs:
if: ${{ needs.resolve_prs.outputs.original_pr }}

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Copy over labels
env:
GH_TOKEN: ${{ github.token }}
Expand Down
64 changes: 64 additions & 0 deletions .github/workflows/build-scala-cli-example.yml
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
117 changes: 117 additions & 0 deletions .github/workflows/ci.yml
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
6 changes: 3 additions & 3 deletions .github/workflows/enable-bincompat-checking.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
branches: ${{ steps.determine-branches.outputs.branches }}

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check Valid
Expand Down Expand Up @@ -70,14 +70,14 @@ jobs:
branch: ${{ fromJson(needs.determine_branches.outputs.branches) }}

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Create file
run: |
VERSION=${{ needs.determine_version.outputs.version }}
VERSION_NO_V=${VERSION#v}
echo $VERSION_NO_V >> project/previous-versions.txt
- name: Open PR
uses: peter-evans/create-pull-request@v5
uses: peter-evans/create-pull-request@v6
with:
base: ${{ matrix.branch }}
branch: bincompat/${{ matrix.branch }}/${{ needs.determine_version.outputs.version }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/install-espresso/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ runs:
using: composite
steps:
- id: cache-espresso
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: /usr/local/bin/espresso
key: espresso-${{ runner.os }}-${{ inputs.version }}
Expand Down
31 changes: 31 additions & 0 deletions .github/workflows/install-jextract/action.yml
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
2 changes: 1 addition & 1 deletion .github/workflows/release-notes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
run: echo "$CHANGELOG" >> $GITHUB_STEP_SUMMARY
- name: Upload Release Notes (on release)
if: github.event_name == 'release'
uses: softprops/action-gh-release@v0.1.15
uses: softprops/action-gh-release@v2.0.5
with:
body: ${{ steps.release-notes.outputs.changelog }}
- name: Error on uncategorized PRs
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/require-label.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
name: Check Labels
runs-on: ubuntu-latest
steps:
- uses: docker://agilepathway/pull-request-label-checker:v1.4.25
- uses: docker://agilepathway/pull-request-label-checker:v1.6.32
with:
one_of: Feature,Performance,API Modification,Deprecation,Backend Code Generation,Bugfix,Documentation,Dependency Update,Internal,No Release Notes
repo_token: ${{ secrets.GITHUB_TOKEN }}
7 changes: 6 additions & 1 deletion .github/workflows/scala-cli-example.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ jobs:
runs-on: ubuntu-latest

steps:
<<<<<<< HEAD
- name: Checkout
uses: actions/checkout@v3
# Need to fetch full history for deriving version
Expand All @@ -20,13 +21,17 @@ jobs:
uses: ./.github/workflows/build-scala-cli-example
- name: Upload Example
uses: actions/upload-artifact@v3
=======
- name: Download Generated CLI Example
uses: actions/download-artifact@v4
>>>>>>> 99aa9f1e4 (Bump versions of Github actions to versions using Node 20 (#4116))
with:
name: chisel-example.scala
path: chisel-example.scala
retention-days: 7
- name: Upload To Release Page
if: github.event_name == 'release'
uses: softprops/action-gh-release@v0.1.15
uses: softprops/action-gh-release@v2.0.5
with:
files: chisel-example.scala

2 changes: 1 addition & 1 deletion .github/workflows/setup-oss-cad-suite/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ runs:
using: composite
steps:
- id: cache-oss-cad-suite
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: oss-cad-suite
key: oss-cad-suite-${{ runner.os }}-${{ inputs.version }}
Expand Down
Loading

0 comments on commit 284d69c

Please sign in to comment.