Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add scripts/interactive-release.sh for automated releases #6748

Draft
wants to merge 21 commits into
base: master
Choose a base branch
from
5 changes: 4 additions & 1 deletion .github/workflows/broken-links.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
# This job checks for broken links in various files in the repo.
#
# This job runs on all pull requests and on push to master, and it can also be triggered manually.


name: "🔗 Broken Links"

on:
workflow_dispatch: # Or manually dispatch the job
workflow_dispatch:
pull_request:
push:
branches:
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/cabal-build-all.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
# This workflow runs `cabal build all` on Linux with all supported GHC versions.
# This job runs `cabal build all` on Linux with all supported GHC versions.
# Normally, if Nix can build the shell and the packages via haskell.nix, we can be confident that
# Cabal can build the project inside the Nix shell.
# However, this workflow is implemented to catch edge cases, such as the one described in
# https://github.com/IntersectMBO/plutus/issues/6625.
#
# This job runs on all pull requests and on push to master, and it can also be triggered manually.


name: "👷 Cabal Build All"

on:
workflow_dispatch:
pull_request:
push:
branches:
- master
Expand All @@ -24,7 +28,7 @@ jobs:
- name: Checkout
uses: actions/checkout@main

- name: Cold Build On ${{ matrix.ghc }}
- name: Cold Build / ${{ matrix.ghc }} / x86_64-linux
run: |
nix develop --no-warn-dirty --accept-flake-config .#${{ matrix.ghc }} \
--command bash -c 'cabal clean && cabal update && cabal build all'
7 changes: 5 additions & 2 deletions .github/workflows/cardano-constitution-tests.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
# This workflow runs the nighlty cardano-constitution tests
# This job runs the nightly cardano-constitution tests.
#
# This job runs daily at 2am, and it can also be triggered manually.


name: "🗽 Cardano Constitution Tests"

on:
workflow_dispatch:
schedule:
- cron: 0 2 * * * # Daily at 2am
- cron: 0 2 * * *

jobs:
run:
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/changelog-label.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# This job enforces that: either some changelog.d/** files were added by the
# PR, or the PR has the "No Changelog Required" label.

#
# This job runs on all pull requests, and on pull request label changes.


name: "🏷️ Changelog Label"

on:
Expand Down
10 changes: 6 additions & 4 deletions .github/workflows/cost-model-benchmark.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
# This workflow runs the cost model benchmark and uploads the results as a
# GitHub artifact.
# This job runs the cost model benchmark and uploads the results as a GitHub artifact.
#
# This job must be triggered manually via workflow dispatch.


name: "💰 Cost Model Benchmark"

on:
workflow_dispatch:
inputs:
entra-bench-args:
extra-bench-args:
description: 'extra argument(s) to pass to the cost-model-budgeting-bench command'
default: ''
type: string
Expand All @@ -21,7 +23,7 @@ jobs:
uses: actions/checkout@main

- name: Run Benchmark
run: nix --accept-flake-config run .#cost-model-budgeting-bench -- --csv results.csv ${{ inputs.entra-bench-args }}
run: nix --accept-flake-config run .#cost-model-budgeting-bench -- --csv results.csv ${{ inputs.extra-bench-args }}

- name: Upload Results
uses: actions/upload-artifact@main
Expand Down
9 changes: 6 additions & 3 deletions .github/workflows/docusaurus-site.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
# This workflow builds the Docusaurus site on pull_request.
# It also publishes the site on push to master to:
# This job builds and deploys the Docusaurus site.
#
# This job builds the site on pull requests, and it also automatically deploys
# the site on push to master or on workflow dispatch to:
# https://plutus.cardano.intersectmbo.org/docs


name: "🦕 Docusaurus Site"

on:
Expand All @@ -28,7 +31,7 @@ jobs:
run: nix develop --no-warn-dirty --accept-flake-config --command bash -c 'yarn && yarn build'

- name: Deploy Site
if: github.event_name == 'push'
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
uses: JamesIves/[email protected]
with:
folder: doc/docusaurus/build
Expand Down
20 changes: 16 additions & 4 deletions .github/workflows/haddock-site.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,27 @@
# This workflow builds and publishes the Haddock site to:
# https://plutus.cardano.intersectmbo.org/haddock/$version
# And optionally to:
# This job builds and deploys the Haddock site.
#
# When this job is triggered manually via workflow dispatch, it builds and then
# publishes the site according to the 'ref' input:
# https://plutus.cardano.intersectmbo.org/haddock/$ref
# And optionally (if the 'latest' flag is set) to:
# https://plutus.cardano.intersectmbo.org/haddock/latest
# On push to master, this workflows publishes to:
#
# This job also builds and publishes the site on push to master to:
# https://plutus.cardano.intersectmbo.org/haddock/master
#
# This job does not trigger on each pull request because it takes about 1h to run.
# However it will build (but not deploy) the site on pull requests to the release/* branches.


name: "📜 Haddock Site"

on:
push:
branches:
- master
pull_request:
branches:
- 'release/*'

workflow_dispatch:
inputs:
Expand Down Expand Up @@ -72,6 +83,7 @@ jobs:

- name: Deploy Site
uses: JamesIves/[email protected]
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
with:
folder: _haddock
target-folder: haddock/${{ inputs.destination || github.ref_name }}
Expand Down
15 changes: 9 additions & 6 deletions .github/workflows/longitudinal-benchmark.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
# This workflow runs the benchmarks defined in the environment variable BENCHMARKS.
# It will collect and aggreate the benchmark output, format it and feed it to the
# github-action-benchmark action.
#
# This job runs a suite of benchmarks and detects performance regressions.
# The benchmark charts are live at https://plutus.cardano.intersectmbo.org/dev/bench
# The benchmark data is available at https://plutus.cardano.intersectmbo.org/dev/bench/data.js
#
# This is a performance regression check that is run on every push master.
# This job runs on push to master, and on pull requests to the release/* branches,
# and it can also be triggered manually.


name: "🩺 Longitudinal Benchmark"

on:
workflow_dispatch:
push:
branches:
- master
pull_request:
branches:
- 'release/*'

permissions:
# Deployments permission to deploy GitHub pages website
Expand All @@ -34,7 +37,7 @@ jobs:
run: nix develop --no-warn-dirty --accept-flake-config --command bash ./scripts/run-longitudinal-benchmarks.sh

# We need this otherwise the next step will fail with:
# `pre-commit` not found. Did you forget to activate your virtualenv?
# `pre-commit` not found. Did you forget to activate your virtualenv?
# This is because github-action-benchmark will call git commit outside nix develop.
- name: Disable Git Hooks
run: git config core.hooksPath no-hooks
Expand Down
9 changes: 6 additions & 3 deletions .github/workflows/manual-benchmark.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
# This workflows checks for comments in PRs. If the comment has this format:
# /benchmark NAME
# Then this action will run the benchmark with the given NAME, first against
# This job runs the desired benchmarks on demand.
#
# This job triggers whenever a comment is created in any PR.
# If the comment has this format: "/benchmark NAME"
# The this job will run the benchmark with the given NAME, first against
# the current branch and then comparing the results against the master branch.


name: "🚀 Manual Benchmark"

on:
Expand Down
12 changes: 12 additions & 0 deletions .github/workflows/metatheory-site.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,18 @@
# On push to master, this workflows publishes to:
# https://plutus.cardano.intersectmbo.org/metatheory/master

# This job builds and deploys the Metatheory site.
#
# When this job is triggered manually via workflow dispatch, it builds and then
# publishes the site according to the 'ref' input:
# https://plutus.cardano.intersectmbo.org/metatheory/$version
# And optionally (if the 'latest' flag is set) to:
# https://plutus.cardano.intersectmbo.org/metatheory/latest
#
# This job also builds and publishes the site on push to master to:
# https://plutus.cardano.intersectmbo.org/metatheory/master


name: "🔮 Metatheory Site"

on:
Expand Down
9 changes: 6 additions & 3 deletions .github/workflows/nightly-testsuite.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
# This workflow runs the nightly plutus-core-test and plutus-ir-test test suite.
# This job runs the nightly plutus-core-test and plutus-ir-test test suite.
#
# This job runs daily at midnight, and it can also be triggered manually.


name: "🌘 Nightly Testsuite"

on:
schedule:
- cron: 0 0 * * * # Daily at midnight
- cron: 0 0 * * *

workflow_dispatch:
inputs:
hedgehog-tests:
description: Numer of tests to run (--hedgehog-tests XXXXX)
description: Number of tests to run (--hedgehog-tests XXXXX)
required: false
default: "100000"

Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/papers-and-specs.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# This job builds various papers and deploys them to:
# https://plutus.cardano.intersectmbo.org/resources
# This job builds and deploys various papers.
#
# This job runs on all push to master and can also be triggered manually.
# It deploys the artifacts to: https://plutus.cardano.intersectmbo.org/resources

name: "📝 Papers & Specs"

Expand Down
16 changes: 10 additions & 6 deletions .github/workflows/plutus-tx-template.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
# This workflows ensures that the plutus-tx-template repository stays working
# even if there are changes in plutus. It checks out both the current commit of
# plutus and the master branch of plutus-tx-template. Then, it creates a
# cabal.project.local for plutus-tx-template that adjusts the plutus version.
# Finally, it double-checks that everything still builds correctly using cabal
# inside the devx shell.
# This job builds the plutus-tx-template using the current version of the plutus code.
#
# It ensures that the plutus-tx-template repository stays working even if there
# are changes in plutus. It checks out both the current commit of plutus and the
# master branch of plutus-tx-template. Then, it creates a cabal.project.local for
# plutus-tx-template that adjusts the plutus version. Finally, it double-checks
# that everything still builds correctly using cabal inside the devx shell.
#
# This job runs on all pull requests.


name: "🏛️ PlutusTx Template"

Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/slack-message-broker.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# This workflow sends a message to the plutus-ci channel whenever a status check fails,
# This job sends a message to the plutus-ci channel whenever a status check fails,
# and tried to notify the author of the commit that caused the failure.
#
# This job triggers whenever a workflow run or a check run is completed.

name: "📮 Slack Message Broker"

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sprint-issues-rollover.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# This workflows moves issues and pull requests to the next sprint iteration of
# This job moves issues and pull requests to the next sprint iteration of
# the Plutus Backlog project. In practice, all open backlog items in the Current
# Iteration (the one that is still in progress) will be moved to the Next
# Iteration (the one that will start next).
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -113,3 +113,4 @@ plutus-pab/test-node/alonzo-purple/db
*.timelog
*.stacks
.nvimrc
release-*
Loading
Loading