Skip to content

Automated binary release #228

Automated binary release

Automated binary release #228

# This workflow will release project with Gradle
name: Automated binary release
on:
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '0 0 * * 5'
workflow_dispatch:
inputs:
scope:
description: 'Specify scope that is to be used.'
required: true
type: choice
options:
- patch
- minor
- major
default: 'patch'
jobs:
release:
runs-on: ubuntu-latest
timeout-minutes: 40
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
token: ${{ secrets.ZOWE_ROBOT_TOKEN }}
- uses: ./.github/actions/setup
- name: Build with Gradle
run: ./gradlew clean build
- name: Clean git
run: git reset --hard HEAD
- name: Set email
run: git config user.email "[email protected]"
- name: Set name
run: git config user.name "Zowe Robot"
- name: Release to NPM automatic
shell: bash
run: |
cd onboarding-enabler-nodejs
echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ~/.npmrc
echo "registry=$DIST_REGISTRY" >> ~/.npmrc
npm version ${{ github.event.inputs.scope || env.DEFAULT_SCOPE }} --allow-same-version
npm publish --access public
git add package.json
git add package-lock.json
git commit -m "[skip ci] Update version"
git push
cd ..
env:
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
DEFAULT_SCOPE: 'patch'
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
DIST_REGISTRY: https://registry.npmjs.org/
- name: Release with Gradle automatic
shell: bash
run: |
./gradlew release -x test -x checkstyleTest -Prelease.useAutomaticVersion=true -Prelease.scope=${{ github.event.inputs.scope || env.DEFAULT_SCOPE }} -Pzowe.deploy.username=$ARTIFACTORY_USERNAME -Pzowe.deploy.password=$ARTIFACTORY_PASSWORD -Partifactory_user=$ARTIFACTORY_USERNAME -Partifactory_password=$ARTIFACTORY_PASSWORD
released_version=$(cat gradle.properties | grep "version=" | sed "s/version=//g")
sed -i "/REACT_APP_ZOWE_BUILD_INFO=/c\REACT_APP_ZOWE_BUILD_INFO=${released_version}" api-catalog-ui/frontend/.env
git add api-catalog-ui/frontend/.env
git commit -m "[skip ci] Update version"
git push
env:
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
DEFAULT_SCOPE: 'patch'
BUILD_NUMBER: ${{ github.run_number }}
BRANCH_NAME: ${{ github.ref_name }}
- name: Store test results
uses: actions/upload-artifact@v4
if: failure()
with:
name: ReleaseAutomated-${{ github.run_number }}
path: |
results/**
gateway-service/build/reports/**
discovery-service/build/reports/**
caching-service/build/reports/**
api-catalog-services/build/reports/**
zaas-service/build/reports/**
/home/runner/.npm/logs/**
- uses: ./.github/actions/teardown