Skip to content

Commit

Permalink
docs
Browse files Browse the repository at this point in the history
  • Loading branch information
auricom committed Sep 26, 2024
1 parent 087a84c commit a0d40b0
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 23 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/nightlies-scheduled.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
# Workflow that creates nightly builds of application declared on the repository.
# The workflow is described in the README.md at the root of the repository

name: Scheduled Nightlies

concurrency:
Expand Down
102 changes: 79 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,82 @@

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.

## Workflows description

### Workflow #1 - Release Cosmos-SDK
- Application: SimApp from `cosmos/cosmos-sdk`
- Dependencies:
- cosmos-sdk release/v0.50.x
- cosmos-sdk release/v0.52.x
- cometbft main
- Outputs:
- Workflow artifacts
- Container image

### Workflow #2 - Test Cosmos-SDK / Comet
- Application: SimAp from `cosmos/cosmos-sdk`
- Dependencies:
- cosmos-sdk HEAD/main
- cometbft HEAD/main

### Workflow #3 - Release Cosmos-SDK / IBC
- Application: SimApp from `cosmos/ibc-go`
- Dependencies:
- cosmos-sdk release/v0.50.x
- cosmos-sdk modules forced on release/v0.50.x
## Nightlies Scheduled workflow

The workflow runs once a day, and will publish artifacts (binary and container image) following the specification inside .`/apps/<app_name>/metadata.yaml`

### Essential Files

The following files play critical roles in ensuring the proper execution of the workflow:

#### In the ./apps/<app_name>/ directory:

1. `ci/` (directory)
- Contains scripts and configurations for Continuous Integration.

2. `Dockerfile`
- Defines the container image for building and running the application in a production environment.

3. `entrypoint.sh`
- Shell script that serves as the entry point for the container.
- Must init the blockchain if necessary.

4. `metadata.yaml`
- Contains informations about how to build the application.

#### In the ./apps//<app_name>/ci/ directory:

1. `build.sh`
- Script responsible for building the application.

2. `goss.yaml`
- Configuration file for Goss, a server testing tool.
- Defines tests to validate the correctness of the built container.

3. `test.sh`
- Script for running tests on the application.
- Will check if blocks are produced on a short-lived testnet.


### metadata.yaml configuration Structure

The YAML file consists of several top-level fields and a `channels` section with channel-specific configurations.

#### Top-level Fields

```yaml
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.
#### Channels Configuration
The channels section allows you to define multiple build configurations, each with its own settings.
```yaml
channels:
- name: master
platforms: [&quot;linux/amd64&quot;]
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).

0 comments on commit a0d40b0

Please sign in to comment.