This GitHub Actions workflow builds evm-node and evm-rpc.
This GitHub action will run under the following circumstances:
- When code is pushed.
- Workflow dispatch event, a manual CI run, which can be triggered by the "Workflow Dispatch" button in the Actions tab of the GitHub repository, among other means.
The inputs for this GitHub action are:
GITHUB_TOKEN- a GitHub Actions intrinsic used to access the repository and other public resources.TRUSTEVM_CI_APP_ID- the app ID of thetrustevm-ci-submodule-checkoutGitHub App.TRUSTEVM_CI_APP_KEY- the private key to thetrustevm-ci-submodule-checkoutGitHub App.upload-artifacts- a boolean input that specifies whether or not to upload the artifacts of the build. The default value isfalse. This can be overridden in manual CI runs.
These inputs are used in various steps of the workflow to perform actions such as authentication, downloading artifacts, configuring the build, and uploading artifacts.
This workflow performs the following steps:
- Attach Documentation
- Checkout the repo with no submodules.
- Attach an annotation to the GitHub Actions build summary page containing CI documentation.
- EVM Node Build
- Authenticate to the
trustevm-ci-submodule-checkoutGitHub app using the AntelopeIO/github-app-token-action action to obtain an ephemeral token. - Checkout the repo and submodules using the ephemeral token.
- Build evm-node and evm-rpc using
cmakeandmake. - Upload the build folder to GitHub Actions if the
upload-artifactsinput is set totrue.
- Authenticate to the
This workflow produces the following outputs:
- Build Artifacts -
build.tar.gzcontaining the built artifacts of evm-node and evm-rpc, if theupload-artifactsinput is set totrue.
💾️ Build artifacts are only attached on-demand for this pipeline because they are >117 MB each, but we only get 2 GB of cumulative artifact storage in GitHub Actions while evm-node is a private repo. Obtain artifacts by performing a manual build with
upload-artifactsset totrue.
- github-app-token-action GitHub action
- EVM Documentation
For assistance with the CI system, please open an issue in this repo or reach out in the #help-automation channel via IM.
Legal notice
This document was generated in collaboration with ChatGPT from OpenAI, a machine learning algorithm or weak artificial intelligence (AI). At the time of this writing, the OpenAI terms of service agreement §3.a states:
Your Content. You may provide input to the Services (“Input”), and receive output generated and returned by the Services based on the Input (“Output”). Input and Output are collectively “Content.” As between the parties and to the extent permitted by applicable law, you own all Input, and subject to your compliance with these Terms, OpenAI hereby assigns to you all its right, title and interest in and to Output.
This notice is required in some countries.