Skip to content

Commit

Permalink
Switch to using Github Actions CI (bp #1690) (#1698)
Browse files Browse the repository at this point in the history
* Switch to using Github Actions CI (#1690)

MiMa binary compatibility checks are now run on master, but the
mimaPreviousArtifacts are empty which makes the check a no-op. This
helps keep both the build.sbt and CI more consistent between master and
stable branches.

.mergify.yml is also updated with mergify.sc from chisel-repo-tools
using the following configuration:

conditions:
  - status-success=all tests passed
branches:
  - 3.2.x
  - 3.3.x
  - 3.4.x
(cherry picked from commit 25a417f)

# Conflicts:
#	.mergify.yml
#	build.sbt
#	project/plugins.sbt

* Resolve merge conflicts

Co-authored-by: Jack Koenig <[email protected]>
  • Loading branch information
mergify[bot] and jackkoenig authored Dec 17, 2020
1 parent b9b962a commit 0ee48dd
Show file tree
Hide file tree
Showing 4 changed files with 155 additions and 103 deletions.
45 changes: 45 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Continuous Integration

on: [pull_request]

jobs:
ci:
name: ci
runs-on: ubuntu-latest
strategy:
matrix:
scala: [2.12.12, 2.11.12]
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: [email protected]
- name: Cache Scala
uses: coursier/cache-action@v5
- name: Documentation (Scala 2.12 only)
if: matrix.scala == '2.12.12'
run: sbt ++${{ matrix.scala }} docs/mdoc
- name: Test
run: sbt ++${{ matrix.scala }} test
- name: Binary compatibility
run: sbt ++${{ matrix.scala }} mimaReportBinaryIssues


# 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: [ci]
runs-on: ubuntu-latest
steps:
- run: echo Success!
203 changes: 105 additions & 98 deletions .mergify.yml
Original file line number Diff line number Diff line change
@@ -1,100 +1,107 @@
pull_request_rules:
- name: remove outdated reviews
conditions:
- base=master
actions:
dismiss_reviews:
- name: automatic squash-and-merge on CI success and review
conditions:
- status-success=all tests passed
- '#approved-reviews-by>=1'
- '#changes-requested-reviews-by=0'
- base=master
- label="Please Merge"
- label!="DO NOT MERGE"
- label!="bp-conflict"
actions:
merge:
method: squash
strict: smart
strict_method: merge
- name: backport to 3.4.x
conditions:
- merged
- base=master
- milestone=3.4.x
actions:
backport:
branches:
- 3.4.x
ignore_conflicts: true
label_conflicts: bp-conflict
label:
add:
- Backported
- name: backport to 3.3.x, 3.4.x
conditions:
- merged
- base=master
- milestone=3.3.x
actions:
backport:
branches:
- 3.3.x
- 3.4.x
ignore_conflicts: true
label_conflicts: bp-conflict
label:
add:
- Backported
- name: backport to 3.2.x, 3.3.x, 3.4.x
conditions:
- merged
- base=master
- milestone=3.2.x
actions:
backport:
branches:
- 3.2.x
- 3.3.x
- 3.4.x
ignore_conflicts: true
label_conflicts: bp-conflict
label:
add:
- Backported
- name: label Mergify backport PR
conditions:
- body~=This is an automated backport of pull request \#\d+ done by Mergify
actions:
label:
add:
- Backport
- name: automatic squash-and-mege of 3.2.x backport PRs
conditions:
- status-success=all tests passed
- '#changes-requested-reviews-by=0'
- base=3.2.x
- label="Backport"
- label!="DO NOT MERGE"
- label!="bp-conflict"
actions:
merge:
method: squash
strict: smart
strict_method: merge
- name: automatic squash-and-mege of 3.3.x backport PRs
conditions:
- status-success=all tests passed
- '#changes-requested-reviews-by=0'
- base=3.3.x
- label="Backport"
- label!="DO NOT MERGE"
- label!="bp-conflict"
actions:
merge:
method: squash
strict: smart
strict_method: merge
- name: automatic squash-and-mege of 3.4.x backport PRs
conditions:
- status-success=all tests passed
- '#changes-requested-reviews-by=0'
- base=3.4.x
- label="Backport"
- label!="DO NOT MERGE"
- label!="bp-conflict"
actions:
merge:
method: squash
strict: smart
strict_method: merge

pull_request_rules:
- name: automatic squash-and-merge on CI success and review
conditions:
- "status-success=ci/circleci: build-firrtl"
- "status-success=ci/circleci: build-prep"
- "status-success=ci/circleci: test-chisel-2_11"
- "status-success=ci/circleci: test-chisel-2_12"
- status-success=license/cla
- "#approved-reviews-by>=1"
- "#changes-requested-reviews-by=0"
- base=master
- label="Please Merge"
- label!="DO NOT MERGE"
- label!="bp-conflict"
actions:
merge:
method: squash
strict: smart
strict_method: merge

- name: backport to 3.3.x
conditions:
- merged
- base=master
- milestone=3.3.x
actions:
backport:
branches:
- 3.3.x
ignore_conflicts: True
label_conflicts: "bp-conflict"
label:
add: [Backported]

- name: backport to 3.2.x and 3.3.x
conditions:
- merged
- base=master
- milestone=3.2.x
actions:
backport:
branches:
- 3.2.x
- 3.3.x
ignore_conflicts: True
label_conflicts: "bp-conflict"
label:
add: [Backported]

- name: label Mergify backport PR
conditions:
- body~=This is an automated backport of pull request \#\d+ done by Mergify
actions:
label:
add: [Backport]

- name: automatic squash-and-merge of 3.3.x backport PRs
conditions:
- "status-success=ci/circleci: build-firrtl"
- "status-success=ci/circleci: build-prep"
- "status-success=ci/circleci: test-chisel-2_11"
- "status-success=ci/circleci: test-chisel-2_12"
- "status-success=ci/circleci: check-binary-compatibility"
- status-success=license/cla
- "#changes-requested-reviews-by=0"
- base=3.3.x
- label="Backport"
- label!="DO NOT MERGE"
- label!="bp-conflict"
actions:
merge:
method: squash
strict: smart
strict_method: merge

- name: automatic squash-and-merge of 3.2.x backport PRs
conditions:
- "status-success=ci/circleci: build-firrtl"
- "status-success=ci/circleci: build-prep"
- "status-success=ci/circleci: test-chisel-2_11"
- "status-success=ci/circleci: test-chisel-2_12"
- "status-success=ci/circleci: check-binary-compatibility"
- status-success=license/cla
- "#changes-requested-reviews-by=0"
- base=3.2.x
- label="Backport"
- label!="DO NOT MERGE"
- label!="bp-conflict"
actions:
merge:
method: squash
strict: smart
strict_method: merge
8 changes: 4 additions & 4 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ lazy val plugin = (project in file("plugin")).
mimaPreviousArtifacts := {
// Not published for 2.11, do not try to check binary compatibility with a 2.11 artifact
if (scalaVersion.value.startsWith("2.11")) Set()
else Set("edu.berkeley.cs" % "chisel3-plugin" % "3.4.0" cross CrossVersion.full)
else Set("edu.berkeley.cs" % "chisel3-plugin" % "3.4.1" cross CrossVersion.full)
}
)

Expand All @@ -174,7 +174,7 @@ lazy val macros = (project in file("macros")).
settings(name := "chisel3-macros").
settings(commonSettings: _*).
settings(publishSettings: _*).
settings(mimaPreviousArtifacts := Set("edu.berkeley.cs" %% "chisel3-macros" % "3.4.0"))
settings(mimaPreviousArtifacts := Set("edu.berkeley.cs" %% "chisel3-macros" % "3.4.1"))

lazy val firrtlRef = ProjectRef(workspaceDirectory / "firrtl", "firrtl")

Expand All @@ -189,7 +189,7 @@ lazy val core = (project in file("core")).
).
settings(publishSettings: _*).
settings(
mimaPreviousArtifacts := Set("edu.berkeley.cs" %% "chisel3-core" % "3.4.0"),
mimaPreviousArtifacts := Set("edu.berkeley.cs" %% "chisel3-core" % "3.4.1"),
mimaBinaryIssueFilters ++= Seq(
// Modified package private methods (https://github.com/lightbend/mima/issues/53)
ProblemFilters.exclude[IncompatibleMethTypeProblem]("chisel3.internal.Builder.pushPrefix"),
Expand Down Expand Up @@ -234,7 +234,7 @@ lazy val chisel = (project in file(".")).
dependsOn(core).
aggregate(macros, core, plugin).
settings(
mimaPreviousArtifacts := Set("edu.berkeley.cs" %% "chisel3" % "3.4.0"),
mimaPreviousArtifacts := Set("edu.berkeley.cs" %% "chisel3" % "3.4.1"),
libraryDependencies += defaultVersions("treadle") % "test",
scalacOptions in Test ++= Seq("-language:reflectiveCalls"),
scalacOptions in Compile in doc ++= Seq(
Expand Down
2 changes: 1 addition & 1 deletion project/plugins.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.2.5" )

addSbtPlugin("com.eed3si9n" % "sbt-sriracha" % "0.1.0")

addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "0.8.0")
addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "0.8.1")

// From FIRRTL for building from source
addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.9.19")

0 comments on commit 0ee48dd

Please sign in to comment.