Skip to content

Automated Version bump #319

Automated Version bump

Automated Version bump #319

Workflow file for this run

name: CI
on:
push:
tags: [v*]
pull_request:
workflow_dispatch:
jobs:
ci:
name: CI
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install jq
run: |
sudo apt-get update
sudo apt-get install -y jq
- name: Check Copyright
run: ./verify_copyright.sh
- name: Install Node 18
uses: actions/setup-node@v4
with:
node-version: 18
- name: Lint
run: |
npm i
npm run lint
- name: Build
run: npm run build
- name: Test
run: npm run test
template-e2e:
needs: [ci]
name: Test Project Template
runs-on: ubuntu-22.04
env:
GALA_CLIENT_DEV_MODE: "true"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install tools
run: |
sudo apt-get update
sudo apt-get install -y jq
sudo wget -qO /usr/local/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64
sudo chmod a+x /usr/local/bin/yq
git --version
node --version
npm --version
jq --version
yq --version
bash --version
docker version
docker-compose version
npm i -g nx
- name: Build template
run: |
npm i
cd chain-cli
../npm-pack-and-replace.sh --skipConfirmation
npm i -g gala-chain-cli-*
galachain --help
cd ..
- name: Create test project
run: |
galachain init ./project-test
cd ./project-test
../npm-pack-and-replace.sh --skipConfirmation
cat package.json
npm run network:start & # Run network in background and wait for it to start
npm run test
sleep 120
npm run test:e2e
MAX_BLOCK_INDEX=$(curl --location 'http://localhost:3010/product-channel/blocks' --header 'Content-Type: application/json' | jq '.info.fromBlock')
if [ $MAX_BLOCK_INDEX -lt 56]; then
echo "The number of blocks is less than 56"
exit 1
else
echo "There are at least 56 blocks after the tests ($$MAX_BLOCK_INDEX)"
fi
npm run network:prune
template-image-check:
name: Template Image Check
needs: [ci]
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install tools
run: |
npm i
cd chain-cli
npm run build
npm link ./
cd ..
galachain init ./project-test
cd ./project-test
../npm-pack-and-replace.sh --skipConfirmation
npm i
docker build . -t chaincode-test
run_output=$(docker run --rm chaincode-test 2>&1 || true)
echo "$run_output"
if echo "$run_output" | grep -q 'Missing required argument'; then
echo "Success: Got expected error relating with missing required argument."
exit 0
else
echo "---"
echo "Unexpected error from the container. Expected: 'Missing required argument'."
exit 1
fi
chaincode-template-lint:
name: Chaincode Template Lint
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install dependencies
run: npm install
- name: Build CLI and link it
run: |
cd chain-cli/chaincode-template
../../npm-pack-and-replace.sh --skipConfirmation
cd ..
npm install
npm run build
npm link --force
- name: Chaincode lint
run: |
galachain init test-project
cd test-project
npm install
npm run build
npm run lint
publish:
name: Publish Release
needs: [template-e2e, template-image-check]
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v'))
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install Dependencies
run: npm i
- name: Set up version
run: |
# Extract package name and version
NPM_PACKAGE_NAME=$(node -p "require('./package.json').name")
NPM_PACKAGE_VERSION=$(node -p "require('./package.json').version")
echo "//registry.npmjs.org/:_authToken=${{ secrets.NODE_AUTH_TOKEN }}" > .npmrc
- name: publish-chain-api
run: |
cd chain-api
npm i
npm run build
# Publish to NPM registry
npm publish --access public
cd ../
- name: publish-chain-test
run: |
cd chain-test
npm i
npm run build
npm publish --access public
cd ../
- name: publish-chain-cli
run: |
cd chain-cli
npm i
npm run build
npm publish --access public
cd ../
- name: publish-chaincode
run: |
cd chaincode
npm i
npm run build
npm publish --access public
cd ../
- name: publish-client
run: |
cd chain-client
npm i
npm run build
npm publish --access public
cd ../
publish-cli-image:
name: Publish CLI Image
needs: [ publish ]
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v'))
env:
REGISTRY: ghcr.io
IMAGE_NAME: galachain/sdk
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Make the repository name lowercase
id: lower-repo
shell: pwsh
run: |
"::set-output name=repository::$($env:GITHUB_REPOSITORY.ToLowerInvariant())"
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: ./chain-cli/docker
push: true
tags: ghcr.io/${{ steps.lower-repo.outputs.repository }}:latest
bump-version:
needs: [ publish, publish-cli-image ]
if: github.event_name != 'pull_request' && (startsWith(github.ref, 'refs/tags/v'))
name: Bump SDK Version
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install tools
run: npm i -g semver
- name: Configure Git
run: |
git config --global user.name "gala-user[bot]"
git config --global user.email "gala-user[bot]@users.noreply.github.com"
- name: Set version from tag
run: |
TAG=$(git describe --tags --abbrev=0)
VERSION=${TAG:1}
echo "TAG: $TAG"
echo "VERSION: $VERSION"
echo "NEW_SDK_VERSION=$VERSION" >> $GITHUB_ENV
- name: Create a new branch for version bump
run: |
git checkout -b version-bump-${{ env.NEW_SDK_VERSION }}
- name: Bump version and commit
run: |
./unifyVersions.js ${{ env.NEW_SDK_VERSION }}
npm ci
npm i
git add .
git commit -m "Bump version to ${{ env.NEW_SDK_VERSION }}"
- name: Push Changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: version-bump-${{ env.NEW_SDK_VERSION }}
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
with:
commit-message: "Bump version to ${{ env.NEW_SDK_VERSION }}"
branch: version-bump-"${{ env.NEW_SDK_VERSION }}"
delete-branch: true
body: "Version bump to ${{ env.NEW_SDK_VERSION }}"
labels: version-bump
token: ${{ secrets.GITHUB_TOKEN }}
auto-merge:
name: Auto merge
runs-on: ubuntu-22.04
if: github.event.pull_request.user.login == "gala-user[bot]"

Check failure on line 297 in .github/workflows/ci.yml

View workflow run for this annotation

GitHub Actions / CI

Invalid workflow file

The workflow is not valid. .github/workflows/ci.yml (Line: 297, Col: 9): Unexpected symbol: '"gala-user'. Located at position 41 within expression: github.event.pull_request.user.login == "gala-user[bot]"
steps:
- id: automerge
name: automerge
uses: "pascalgn/[email protected]"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MERGE_METHOD: squash