Skip to content
This repository has been archived by the owner on Aug 20, 2024. It is now read-only.

Commit

Permalink
Merge branch 'master' into update/sbt-site-1.4.1
Browse files Browse the repository at this point in the history
  • Loading branch information
sequencer committed Apr 29, 2021
2 parents cf08815 + 39b8943 commit 5395eb7
Show file tree
Hide file tree
Showing 155 changed files with 5,501 additions and 1,320 deletions.
7 changes: 7 additions & 0 deletions .github/configs/mergify_config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Configuration for generating .mergify.yml
conditions:
- status-success=all tests passed
branches:
- 1.2.x
- 1.3.x
- 1.4.x
128 changes: 128 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
name: Continuous Integration

on:
pull_request:
push:
branches:
- master
- 1.4.x
- 1.3.x
- 1.2.x

jobs:
test:
name: sbt test
runs-on: ubuntu-latest
strategy:
matrix:
scala: [2.13.4, 2.12.13]
container:
image: ucbbar/chisel3-tools
options: --user github --entrypoint /bin/bash
env:
CONTAINER_HOME: /home/github

steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Scala
uses: olafurpg/setup-scala@v10
with:
java-version: adopt@1.8
- name: Cache Scala
uses: coursier/cache-action@v6
- name: Check Formatting (Scala 2.12 only)
if: startsWith(matrix.scala, '2.12')
run: sbt ++${{ matrix.scala }} scalafmtCheckAll
- name: Unidoc
run: sbt ++${{ matrix.scala }} unidoc
- name: Sanity check benchmarking scripts (Scala 2.13 only)
if: startsWith(matrix.scala, '2.13')
run: |
benchmark/scripts/benchmark_cold_compile.py -N 2 --designs regress/ICache.fir --versions HEAD
benchmark/scripts/find_heap_bound.py -- -cp firrtl*jar firrtl.stage.FirrtlMain -i regress/ICache.fir -o out -X verilog
- name: Test
run: sbt ++${{ matrix.scala }} test
- name: Binary compatibility
run: sbt ++${{ matrix.scala }} mimaReportBinaryIssues

mill:
name: Mill Sanity Check
runs-on: ubuntu-latest
strategy:
matrix:
scala: [2.13.4, 2.12.13]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Scala
uses: olafurpg/setup-scala@v10
- name: Cache
uses: coursier/cache-action@v5
- name: Setup Mill
uses: jodersky/setup-mill@v0.2.3
- name: Mill sanity check
run: mill _[${{ matrix.scala }}].compile

# TODO find better way to express Ops and AddNot as single test
equiv:
name: formal equivalence
runs-on: ubuntu-latest
strategy:
matrix:
design: [RocketCore, FPU, ICache, Ops, AddNot]
container:
image: ucbbar/chisel3-tools
options: --user github --entrypoint /bin/bash
env:
CONTAINER_HOME: /home/github

steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Scala
uses: olafurpg/setup-scala@v10
with:
java-version: adopt@1.8
- name: Cache Scala
uses: coursier/cache-action@v5
- name: Run Formal Equivalence
run: ./.run_formal_checks.sh ${{ matrix.design }}

# Sentinel job to simplify how we specify which checks need to pass in branch
# protection and in Mergify
#
# When adding new jobs, please add them to `needs` below
all_tests_passed:
name: "all tests passed"
needs: [test, mill, equiv]
runs-on: ubuntu-latest
steps:
- run: echo Success!

# 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-latest
if: github.event_name == 'push'

steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Scala
uses: olafurpg/setup-scala@v10
with:
java-version: adopt@1.8
- name: Cache Scala
uses: coursier/cache-action@v5
- name: Setup GPG (for Publish)
uses: olafurpg/setup-gpg@v3
- name: Publish
run: sbt ci-release
env:
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
PGP_SECRET: ${{ secrets.PGP_SECRET }}
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}

45 changes: 45 additions & 0 deletions .github/workflows/update_mergify.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Update .mergify.yml
on:
schedule:
# Runs once an hour
- cron: "0 * * * *"

jobs:
update-mergify:
name: Update .mergify.yml
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
ref: master
- name: Checkout Chisel Repo Tools
uses: actions/checkout@v2
with:
repository: ucb-bar/chisel-repo-tools
path: tools
- name: Setup Scala
uses: olafurpg/setup-scala@v10
- name: Install Ammonite
run: sudo sh -c '(echo "#!/usr/bin/env sh" && curl -L https://github.com/com-lihaoyi/Ammonite/releases/download/2.3.8/2.13-2.3.8) > /usr/local/bin/amm && chmod +x /usr/local/bin/amm'
- name: Cache Scala
uses: coursier/cache-action@v6
- name: Generate .mergify.yml
run: |
./tools/scripts/mergify.sc .github/configs/mergify_config.yml > .mergify.yml
# Delete tools so they don't get included in commit
rm -rf tools/
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3.8.2
with:
# TODO Default GITHUB_TOKEN cannot trigger PR CI
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: Update .mergify.yml
branch: actions/workflows/update-mergify
delete-branch: true
title: Update .mergify.yml
body: |
This is an automated pull request by "Update .mergify.yml" workflow created with [create-pull-request][1].
[1]: https://github.com/peter-evans/create-pull-request
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -66,3 +66,4 @@ project/metals.sbt

*~
*#*#
.vscode
Loading

0 comments on commit 5395eb7

Please sign in to comment.