NOTES


Build Instructions

Build Requirements

  • JDK 8
  • Maven 3.6.3+

Build all Extensions

# Run from the Ignite Extension project root
mvn clean install -DskipTests -Pcheckstyle

Build an Extension

# Run from the Ignite Extension project root
mvn clean install -f modules/spring-boot-ext -Pcheckstyle -DskipTests

or

# Run from the Ignite Extension project root
mvn clean install -pl :ignite-aws-ext -am -Pcheckstyle -DskipTests

Release Instructions

Prerequisites

You can refer to the Release Publishing Guide and Publishing Maven Releases to Maven Central Repository of the Apache Software Foundation release process for better understanding the whole process.

Prepare a new Release Candidate

  • Create and push an extension release branch with the following branch name format: release/[extension-project-name]-[extension-version].

    git remote set-url origin https://github.com/apache/ignite-extensions.git
    git checkout master
    git checkout -b release/ignite-aws-ext-1.0.0
    git push origin release/ignite-aws-ext-1.0.0
    
  • Update Extension parent reference version and the extension module version using the scripts/update-versions.sh.

    # Usage: scripts/update-versions.sh [<ignite-parent-version>] <module-path> <module-release-version>
    scripts/update-versions.sh [2.13.0] modules/asw-ext/ 1.0.0
    
  • Run the Extension Prepare Release Candidate GitHub Action using the release branch as job source this job will also create a rc-tag which points to the last commit in the release branch.

  • From the execution job result download the zip artifact containing all the stuff required for signing and deploying release artifacts.

  • Run the vote_[mvn][pgp]_jar_deploy.sh to sign and deploy extensions jar's to Maven Central.

  • Run the vote_[pgp]_sign_dist.sh to sign the extension binary and source zip-archives.

  • Run the vote_[svn]_upload_dist.sh to upload signed zip-archives.

  • Run the Extension Check Release Candidate GitHub Action to verify the papered release candidate.

Development Instructions

Running GitHub Actions Locally

Configure the act command line utility. When you run act it reads projects GitHub Actions from .github/workflows/ and determines the set of actions that need to be run on Docker image.

Use the following installation guide to install the act command: https://github.com/nektos/act/blob/master/README.md#installation

Run

act --job check --eventpath event.json -s GITHUB_TOKEN=[your_fork_github_token]

The event.json:

{
  "action": "workflow_dispatch",
  "inputs": {
    "extension-name": "ignite-zookeeper-ip-finder-ext",
    "release-version": "1.0.0"
  }
}

Troubleshooting

The act command executes the workflow in a docker container. Some docker images may not have the mvn command pre-installed. Thus, you have to install it in the docker container manually as an action step. Use the step below to install Maven into container:

- name: Download Maven
  run: |
    curl -sL https://www-eu.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.zip -o maven.zip
    apt-get update
    apt-get -y install unzip
    unzip -d /usr/share maven.zip
    rm maven.zip
    ln -s /usr/share/apache-maven-3.6.3/bin/mvn /usr/bin/mvn
    echo "M2_HOME=/usr/share/apache-maven-3.6.3" | tee -a /etc/environment