-
package
-
Description:
-
Will build the following assets in
./tmp/node_pkgs/$OS_TYPE/$ARCH/$VERSION:algorand-indexer_2.2.0-beta_amd64.deb algorand-indexer_2.2.0-beta_arm64.deb algorand-indexer_2.2.0-beta_armhf.deb algorand-indexer_darwin_amd64_2.2.0-beta.tar.bz2 algorand-indexer_linux_amd64_2.2.0-beta.tar.bz2 algorand-indexer_linux_arm_2.2.0-beta.tar.bz2 algorand-indexer_linux_arm64_2.2.0-beta.tar.bz2 -
The version is gotten from
./.version.
Note that if the branch doesn't already contain a tag that matches the version the operation will fail!
-
-
Operation(s):
PKG_DIR = $(SRCPATH)/tmp/node_pkgs/$(OS_TYPE)/$(ARCH)/$(VERSION) rm -rf $(PKG_DIR) mkdir -p $(PKG_DIR) misc/release.py --outdir $(PKG_DIR)
-
-
test
-
Description:
- Runs all go tests.
-
Operation(s):
go test ./...
-
-
test-package
-
Description:
- Creates a test database in Postgres and runs the end-to-end tests.
-
Operation(s):
mule/e2e.sh
-
-
sign
-
Description:
-
The
gpg-agentshould be seeded with the signing key's passphrase, and the socket is then mounted to the docker container. -
All the
debandtar.bz2build artifacts created in thepackagestep are then signed. -
In addition,
md5andshahashes are calculated and captured which are then used to build the releases page. These are also signed.
-
-
Operation(s):
mule/sign.sh
-
-
stage
-
Description:
- Uploads all build assets and their detached signatures to S3.
-
Operation(s):
-
mulewill internally make the following call using theboto3library:aws s3 cp $HOME/projects/indexer/tmp/node_pkgs/linux/amd64/$VERSION s3://$STAGING/indexer/$VERSION
-
-
-
deploy
-
Description:
-
Uses the
aptlytool. -
Adds the new amd64 deb package to the
indexerlocal repository, creates a new snapshot of the repo and then pushes the snapshot to the remote mirror on S3.
-
-
Operation(s):
mule/deploy.sh
-
mule -f mule.yaml package
mule -f mule.yaml test
mule -f mule.yaml test-package
mule -f mule.yaml sign
STAGING=the-staging-area VERSION=2.2.0-beta mule -f mule.yaml stage
mule -f mule.yaml deploy-rpm
Q. Does mule ensure that environment variables are set?
A. It depends on the task, but generally, yes.
Most mule tasks call targets that invoke a shell script, so those will check for needed env vars. Others, like the one in question here,
call an internal library function to upload to S3 using boto3, so that will expect the env var to be set in the calling environment.
For example, here is an example of setting environment variables when uploading to staging:
STAGING=the-staging-area VERSION=2.2.0-beta mule -f mule.yaml stage