This repository contains the nightly builds of the Interchain Stack. The Interchain Stack is a collection of software that enables the creation of decentralized applications that are interoperable with other blockchains. The stack includes the Cosmos SDK, IBC, and CW.
The workflow runs once a day, and will publish artifacts (binary and container image) following the specification inside ./apps/<app_name>/metadata.yaml
The following files play critical roles in ensuring the proper execution of the workflow:
-
ci/
(directory)- Contains scripts and configurations for Continuous Integration.
-
Dockerfile
- Defines the container image for building and running the application in a production environment.
-
entrypoint.sh
- Shell script that serves as the entry point for the container.
- Must init the blockchain if necessary.
-
metadata.yaml
- Contains informations about how to build the application.
-
build.sh
- Script responsible for building the application.
-
goss.yaml
- Configuration file for Goss, a server testing tool.
- Defines tests to validate the correctness of the built container.
-
test.sh
- Script for running tests on the application.
- Will check if blocks are produced on a short-lived testnet.
The YAML file consists of several top-level fields and a channels
section with channel-specific configurations.
app: ignite-example
repository: ignite/example
path: ./
fetch_full_history: true
publish_artifacts: true
binary_name: exampled
- app: The name of your application.
- repository: The GitHub repository where your application is hosted.
- path: The path to the application's root directory within the repository.
- fetch_full_history: Whether to fetch the full Git history (true/false).
- publish_artifacts: Whether to publish build artifacts (true/false).
- binary_name: The name of the compiled binary.
The channels section allows you to define multiple build configurations, each with its own settings.
channels:
- name: master
platforms: ["linux/amd64"]
branch: master
container_tag_name: master
update_modules:
enabled: false
tests_enabled: true
- name: A unique identifier for the channel.
- platforms: A list of target platforms for building (e.g., "linux/amd64").
- branch: The Git branch to use for this channel.
- container_tag_name: The tag to use for the built container image.
- update_modules.enabled: Whether to update modules (true/false).
- update_modules.cosmossdk_branch: Specify a specific branch from the cosmos/cosmos-sdk repository.
- tests_enabled: Whether to run tests using the built artefacts (true/false).