This repository has been archived by the owner on Aug 20, 2024. It is now read-only.
Update sbt-protobuf to 0.7.3 #1823
Workflow file for this run
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: Continuous Integration | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
- 1.6.x | |
- 1.5.x | |
- 1.4.x | |
- 1.3.x | |
- 1.2.x | |
jobs: | |
test: | |
name: sbt test | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
scala: [2.13.10, 2.12.17] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install Tabby OSS Cad Suite | |
uses: ./.github/workflows/setup-oss-cad-suite | |
- 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.10, 2.12.17] | |
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] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install Tabby OSS Cad Suite | |
uses: ./.github/workflows/setup-oss-cad-suite | |
- 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 | |
# This is here instead of on the whole job because if a job is skipped, so are dependent jobs | |
# If this job were skipped, all_tests_passed would be skipped to | |
# By having this "if" here, this job returns success so that all_tests_passed will succeed too | |
if: github.event_name == 'pull_request' && | |
! contains(github.event.pull_request.labels.*.name, 'Skip Formal CI') | |
run: | | |
echo ${{ github.event_name }} | |
echo ${{ github.event.pull_request.labels }} | |
./.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 }} | |