|
|
@@ -1,57 +1,119 @@
|
|
|
name: Release
|
|
|
|
|
|
on:
|
|
|
- push:
|
|
|
+ pull_request:
|
|
|
branches:
|
|
|
- release/current
|
|
|
- release/*.*.*
|
|
|
+ types: [closed]
|
|
|
|
|
|
jobs:
|
|
|
- github-release:
|
|
|
+ create-github-release:
|
|
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
+ if: github.event.pull_request.merged == true
|
|
|
+
|
|
|
outputs:
|
|
|
- RELEASE_VERSION: ${{ steps.bump-version.outputs.RELEASE_VERSION }}
|
|
|
+ RELEASED_VERSION: ${{ steps.package-json.outputs.packageVersion }}
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
|
+ with:
|
|
|
+ ref: ${{ github.event.pull_request.base.ref }}
|
|
|
|
|
|
- - name: Init Git
|
|
|
- run: |
|
|
|
- git config --local user.name "GitHub Action"
|
|
|
- git config --local user.email "info@weseek.co.jp"
|
|
|
- git remote set-url origin "https://$GITHUB_ACTOR:${{ secrets.GITHUB_TOKEN }}@github.com/$GITHUB_REPOSITORY"
|
|
|
+ - uses: actions/setup-node@v2
|
|
|
+ with:
|
|
|
+ node-version: '14'
|
|
|
+ cache: 'yarn'
|
|
|
+ cache-dependency-path: '**/yarn.lock'
|
|
|
|
|
|
- - name: Bump version
|
|
|
- id: bump-version
|
|
|
+ - name: Install dependencies
|
|
|
run: |
|
|
|
- npm --no-git-tag-version version patch
|
|
|
- export RELEASE_VERSION=`npm run version --silent`
|
|
|
- sh ./bin/github-actions/update-readme.sh
|
|
|
- echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV
|
|
|
- echo ::set-output name=RELEASE_VERSION::$RELEASE_VERSION
|
|
|
+ npx lerna bootstrap
|
|
|
|
|
|
- - name: Checkout, Commit, Tag and Push
|
|
|
+ - name: Bump versions
|
|
|
run: |
|
|
|
- TMP_RELEASE_BRANCH=tmp/release-${{ env.RELEASE_VERSION }}
|
|
|
- git checkout -B $TMP_RELEASE_BRANCH
|
|
|
- git commit -am "Release v${{ env.RELEASE_VERSION }}"
|
|
|
- git tag -a v${{ env.RELEASE_VERSION }} -m "v${{ env.RELEASE_VERSION }}"
|
|
|
- git push --follow-tags origin $TMP_RELEASE_BRANCH
|
|
|
- git push --delete origin $TMP_RELEASE_BRANCH
|
|
|
-
|
|
|
- - name: Upload release notes
|
|
|
- uses: Roang-zero1/github-create-release-action@master
|
|
|
- with:
|
|
|
- created_tag: v${{ env.RELEASE_VERSION }}
|
|
|
- changelog_file: CHANGES.md
|
|
|
+ node ./bin/bump-versions -i patch
|
|
|
+
|
|
|
+ - name: Retrieve information from package.json
|
|
|
+ uses: myrotvorets/info-from-package-json-action@0.0.2
|
|
|
+ id: package-json
|
|
|
+
|
|
|
+ - name: Update Changelog
|
|
|
+ uses: stefanzweifel/changelog-updater-action@v1
|
|
|
+ with:
|
|
|
+ latest-version: v${{ steps.package-json.outputs.packageVersion }}
|
|
|
+ release-notes: ${{ github.event.pull_request.body }}
|
|
|
+
|
|
|
+ - name: Commit, Tag and Push
|
|
|
+ uses: stefanzweifel/git-auto-commit-action@v4
|
|
|
+ with:
|
|
|
+ branch: ${{ github.event.pull_request.base.ref }}
|
|
|
+ commit_message: Release v${{ steps.package-json.outputs.packageVersion }}
|
|
|
+ tagging_message: v${{ steps.package-json.outputs.packageVersion }}
|
|
|
+
|
|
|
+ - uses: ncipollo/release-action@v1
|
|
|
+ with:
|
|
|
+ body: ${{ github.event.pull_request.body }}
|
|
|
+ tag: v${{ steps.package-json.outputs.packageVersion }}
|
|
|
+ token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+
|
|
|
+ - name: Delete drafts
|
|
|
+ uses: hugo19941994/delete-draft-releases@v1.0.0
|
|
|
env:
|
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
|
|
|
|
|
+ create-pr-for-next-rc:
|
|
|
+ needs: create-github-release
|
|
|
+
|
|
|
+ runs-on: ubuntu-latest
|
|
|
+
|
|
|
+ steps:
|
|
|
+ - uses: actions/checkout@v2
|
|
|
+ with:
|
|
|
+ ref: v${{ needs.create-github-release.outputs.RELEASED_VERSION }}
|
|
|
+
|
|
|
+ - uses: actions/setup-node@v2
|
|
|
+ with:
|
|
|
+ node-version: '14'
|
|
|
+ cache: 'yarn'
|
|
|
+ cache-dependency-path: '**/yarn.lock'
|
|
|
+
|
|
|
+ - name: Install dependencies
|
|
|
+ run: |
|
|
|
+ npx lerna bootstrap
|
|
|
+
|
|
|
+ - name: Bump versions for next RC
|
|
|
+ run: |
|
|
|
+ node ./bin/bump-versions -i prerelease
|
|
|
+
|
|
|
+ - name: Retrieve information from package.json
|
|
|
+ uses: myrotvorets/info-from-package-json-action@0.0.2
|
|
|
+ id: package-json
|
|
|
+
|
|
|
+ - name: Commit
|
|
|
+ uses: github-actions-x/commit@v2.8
|
|
|
+ with:
|
|
|
+ github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ push-branch: support/prepare-v${{ steps.package-json.outputs.packageVersion }}
|
|
|
+ commit-message: 'Bump version'
|
|
|
+ name: GitHub Action
|
|
|
+
|
|
|
+ - name: Create PR
|
|
|
+ uses: repo-sync/pull-request@v2
|
|
|
+ with:
|
|
|
+ source_branch: support/prepare-v${{ steps.package-json.outputs.packageVersion }}
|
|
|
+ destination_branch: master
|
|
|
+ pr_title: Prepare v${{ steps.package-json.outputs.packageVersion }}
|
|
|
+ pr_label: exclude from changelog
|
|
|
+ pr_body: "An automated PR generated by ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}"
|
|
|
+ github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+
|
|
|
+
|
|
|
build-image:
|
|
|
- needs: github-release
|
|
|
+ needs: create-github-release
|
|
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
@@ -61,11 +123,8 @@ jobs:
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
|
-
|
|
|
- - name: Checkout released tag
|
|
|
- run: |
|
|
|
- git fetch --tags
|
|
|
- git checkout refs/tags/v${{ needs.github-release.outputs.RELEASE_VERSION }}
|
|
|
+ with:
|
|
|
+ ref: v${{ needs.create-github-release.outputs.RELEASED_VERSION }}
|
|
|
|
|
|
- name: Setup suffix
|
|
|
id: suffix
|
|
|
@@ -82,9 +141,9 @@ jobs:
|
|
|
suffix=${{ steps.suffix.outputs.SUFFIX }}
|
|
|
tags: |
|
|
|
type=raw,value=latest
|
|
|
- type=semver,value=${{ needs.github-release.outputs.RELEASE_VERSION }},pattern={{major}}
|
|
|
- type=semver,value=${{ needs.github-release.outputs.RELEASE_VERSION }},pattern={{major}}.{{minor}}
|
|
|
- type=semver,value=${{ needs.github-release.outputs.RELEASE_VERSION }},pattern={{major}}.{{minor}}.{{patch}}
|
|
|
+ type=semver,value=${{ needs.create-github-release.outputs.RELEASED_VERSION }},pattern={{major}}
|
|
|
+ type=semver,value=${{ needs.create-github-release.outputs.RELEASED_VERSION }},pattern={{major}}.{{minor}}
|
|
|
+ type=semver,value=${{ needs.create-github-release.outputs.RELEASED_VERSION }},pattern={{major}}.{{minor}}.{{patch}}
|
|
|
|
|
|
- name: Login to docker.io registry
|
|
|
run: |
|
|
|
@@ -138,7 +197,7 @@ jobs:
|
|
|
with:
|
|
|
channel: '#release'
|
|
|
url: ${{ secrets.SLACK_WEBHOOK_URL }}
|
|
|
- created_tag: 'v${{ needs.github-release.outputs.RELEASE_VERSION }}${{ steps.suffix.outputs.SUFFIX }}'
|
|
|
+ created_tag: 'v${{ needs.create-github-release.outputs.RELEASED_VERSION }}${{ steps.suffix.outputs.SUFFIX }}'
|
|
|
|
|
|
- name: Check whether workspace is clean
|
|
|
run: |
|