Build and publish #514
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and publish | |
on: | |
push: | |
tags: | |
- 'v**' | |
jobs: | |
docker: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node-version: [14.x] | |
steps: | |
- uses: nowsprinting/check-version-format-action@v3 | |
id: version | |
with: | |
prefix: 'v' | |
- name: Check valid tag format | |
if: steps.version.outputs.is_valid == 'false' | |
run: exit 1 | |
- name: Get branch names | |
id: branch-name | |
uses: tj-actions/[email protected] | |
with: | |
strip_tag_prefix: v | |
- name: Get the current tag | |
if: steps.branch-name.outputs.is_tag == 'true' # Replaces: startsWith(github.ref, 'refs/tags/') | |
run: | | |
echo "tag: ${{ steps.branch-name.outputs.tag }}" | |
echo "current_branch: ${{ steps.branch-name.outputs.current_branch }}" | |
echo "ref_branch: ${{ steps.branch-name.outputs.ref_branch }}" | |
- name: Check valid branch | |
if: ${{ !startsWith(steps.branch-name.outputs.tag, '2.') }} | |
run: exit 1 | |
# checkout branch 2.6 | |
- name: Checkout branch 2.6 | |
uses: actions/checkout@v2 | |
if: ${{ startsWith(steps.branch-name.outputs.tag, '2.6') }} | |
with: | |
ref: '2.6' | |
# checkout branch 2.5 | |
- name: Checkout branch 2.5 | |
uses: actions/checkout@v2 | |
if: ${{ startsWith(steps.branch-name.outputs.tag, '2.5') }} | |
with: | |
ref: '2.5' | |
# checkout branch 2.4 | |
- name: Checkout branch 2.4 | |
uses: actions/checkout@v2 | |
if: ${{ startsWith(steps.branch-name.outputs.tag, '2.4') }} | |
with: | |
ref: '2.4' | |
# checkout branch 2.3 | |
- name: Checkout branch 2.3 | |
uses: actions/checkout@v2 | |
if: ${{ startsWith(steps.branch-name.outputs.tag, '2.3') }} | |
with: | |
ref: '2.3' | |
# checkout branch 2.2 | |
- name: Checkout branch 2.2 | |
uses: actions/checkout@v2 | |
if: ${{ startsWith(steps.branch-name.outputs.tag, '2.2') }} | |
with: | |
ref: '2.2' | |
# checkout branch 2.1 | |
- name: Checkout branch 2.1 | |
uses: actions/checkout@v2 | |
if: ${{ startsWith(steps.branch-name.outputs.tag, '2.1') }} | |
with: | |
ref: '2.1' | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v2 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: "yarn" | |
- run: yarn --frozen-lockfile | |
- name: Bootstrap platform | |
run: | | |
yarn bootstrap | |
- name: Build platform | |
env: | |
CI: false | |
run: | | |
yarn build | |
- name: Lerna publish 2.1 | |
if: ${{ startsWith(steps.branch-name.outputs.tag, '2.1') && steps.version.outputs.is_stable == 'true'}} | |
run: | | |
git config user.name github-actions | |
git config user.email [email protected] | |
npm config set //registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN | |
yarn lerna publish ${{ steps.branch-name.outputs.tag }} --no-git-tag-version --no-git-reset --force-publish --exact --yes --dist-tag 2.1 | |
git add . | |
git commit -m "action: release ${{ steps.branch-name.outputs.tag }}" | |
git push | |
env: | |
CI: false | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} | |
- name: Lerna publish 2.2 | |
if: ${{ startsWith(steps.branch-name.outputs.tag, '2.2') && steps.version.outputs.is_stable == 'true'}} | |
run: | | |
git config user.name github-actions | |
git config user.email [email protected] | |
npm config set //registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN | |
yarn lerna publish ${{ steps.branch-name.outputs.tag }} --no-git-tag-version --no-git-reset --force-publish --exact --yes --dist-tag 2.2 | |
git add . | |
git commit -m "action: release ${{ steps.branch-name.outputs.tag }}" | |
git push | |
env: | |
CI: false | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} | |
- name: Lerna publish 2.3 | |
if: ${{ startsWith(steps.branch-name.outputs.tag, '2.3') && steps.version.outputs.is_stable == 'true' }} | |
run: | | |
git config user.name github-actions | |
git config user.email [email protected] | |
npm config set //registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN | |
yarn lerna publish ${{ steps.branch-name.outputs.tag }} --no-git-tag-version --no-git-reset --force-publish --exact --yes --dist-tag 2.3 | |
git add . | |
git commit -m "action: release ${{ steps.branch-name.outputs.tag }}" | |
git push | |
env: | |
CI: false | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} | |
- name: Lerna publish 2.4 | |
if: ${{ startsWith(steps.branch-name.outputs.tag, '2.4') && steps.version.outputs.is_stable == 'true' }} | |
run: | | |
git config user.name github-actions | |
git config user.email [email protected] | |
npm config set //registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN | |
yarn lerna publish ${{ steps.branch-name.outputs.tag }} --no-git-tag-version --no-git-reset --force-publish --exact --yes --dist-tag 2.4 | |
git add . | |
git commit -m "action: release ${{ steps.branch-name.outputs.tag }}" | |
git push | |
env: | |
CI: false | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} | |
- name: Lerna publish 2.5 | |
if: ${{ startsWith(steps.branch-name.outputs.tag, '2.5') && steps.version.outputs.is_stable == 'true' }} | |
run: | | |
git config user.name github-actions | |
git config user.email [email protected] | |
npm config set //registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN | |
yarn lerna publish ${{ steps.branch-name.outputs.tag }} --no-git-tag-version --no-git-reset --force-publish --exact --yes | |
git add . | |
git commit -m "action: release ${{ steps.branch-name.outputs.tag }}" | |
git push | |
env: | |
CI: false | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} | |
- name: Lerna publish 2.6 | |
if: ${{ startsWith(steps.branch-name.outputs.tag, '2.6') && steps.version.outputs.is_stable == 'true' }} | |
run: | | |
git config user.name github-actions | |
git config user.email [email protected] | |
npm config set //registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN | |
yarn lerna publish ${{ steps.branch-name.outputs.tag }} --no-git-tag-version --no-git-reset --force-publish --exact --yes --dist-tag next | |
git add . | |
git commit -m "action: release ${{ steps.branch-name.outputs.tag }}" | |
git push | |
env: | |
CI: false | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} | |
- name: Lerna publish beta | |
if: ${{ steps.version.outputs.is_stable != 'true' }} | |
run: | | |
git config user.name github-actions | |
git config user.email [email protected] | |
npm config set //registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN | |
yarn lerna publish ${{ steps.branch-name.outputs.tag }} --no-git-tag-version --no-git-reset --force-publish --exact --yes --dist-tag beta | |
git add . | |
git commit -m "action: release ${{ steps.branch-name.outputs.tag }}" | |
git push | |
env: | |
CI: false | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} | |
- name: Merge 2.5 -> master | |
if: ${{ startsWith(steps.branch-name.outputs.tag, '2.5') }} # && steps.version.outputs.is_stable == 'true'}} | |
uses: devmasx/merge-branch@master | |
with: | |
type: now | |
from_branch: 2.5 | |
target_branch: master | |
github_token: ${{ github.token }} | |
- name: Sleep 120s, wait for npm cache | |
uses: juliangruber/sleep-action@v1 | |
with: | |
time: 120s | |
- name: Create Docker Release | |
# if: steps.version.outputs.is_stable == 'true' | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.DOCKER_GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token | |
with: | |
owner: steedos | |
repo: docker | |
commitish: main | |
tag_name: v${{ steps.branch-name.outputs.tag }} | |
release_name: Release v${{ steps.branch-name.outputs.tag }} | |
draft: false | |
prerelease: false | |
- name: Sync NpmMirror | |
env: | |
CI: false | |
run: | | |
yarn sync |