From a3e254422137800ec2c90bda7b5339bc4aeb3198 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 4 Oct 2019 16:23:35 +0200 Subject: [PATCH] Add release workflow and prepare for v1 --- .github/workflows/ci.yaml | 8 +++-- .github/workflows/lint.yml | 23 ++++++++++++ .github/workflows/release.yml | 66 +++++++++++++++++++++++++++++++++++ .github/workflows/test.yml | 8 +++-- README.md | 5 +-- 5 files changed, 104 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/lint.yml create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index eb805e9..fa4683f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -2,9 +2,13 @@ name: ci on: pull_request: - branches: master + branches: + - master + - releases/* push: - branches: master + branches: + - master + - releases/* jobs: ci: diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..ab4ad09 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,23 @@ +name: lint + +on: + pull_request: + branches: + - master + - releases/* + paths: + - src/* + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v1 + - + name: Setup TS + run: npm install tslint typescript -g + - + name: Lint check + run: tslint './src/*.ts' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..f8ca1fb --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,66 @@ +name: release + +on: + create: + tags: + - v*.*.* + +jobs: + release: + runs-on: ubuntu-18.04 + steps: + - + name: Checkout + uses: actions/checkout@v1 + - + name: Prepare + id: prepare + run: | + TAG=${GITHUB_REF#refs/tags/} + MINOR=${TAG%.*} + MAJOR=${MINOR%.*} + echo ::set-output name=tag_name::${TAG} + echo ::set-output name=minor_tag::${MINOR} + echo ::set-output name=major_tag::${MAJOR} + echo ::set-output name=major_exists::$(git show-ref origin/releases/${MAJOR}) + - + name: Set up Git + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + git config user.name "${GITHUB_ACTOR}" + git config user.email "${GITHUB_ACTOR}@users.noreply.github.com" + git remote set-url origin https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git + - + name: Checkout releases/${{ steps.prepare.outputs.major_tag }} branch + run: | + git checkout -B releases/${{ steps.prepare.outputs.major_tag }} + if [ -n "${{ steps.prepare.outputs.major_exists }}" ]; then + git branch --set-upstream-to=origin/releases/${{ steps.prepare.outputs.major_tag }} releases/${{ steps.prepare.outputs.major_tag }} + fi + - + name: NPM production deps + run: | + rm -rf node_modules + sed -i '/node_modules/d' .gitignore + npm install --production + - + name: Commit and push changes + run: | + git add --all + git status --short -uno + git commit -m 'Release ${{ steps.prepare.outputs.tag_name }}' + git show --stat-count=10 HEAD + git push -f origin releases/${{ steps.prepare.outputs.major_tag }} + - + name: Update ${{ steps.prepare.outputs.minor_tag }} tag + run: | + git push origin :refs/tags/${{ steps.prepare.outputs.minor_tag }} + git tag -fa ${{ steps.prepare.outputs.minor_tag }} -m "Release ${{ steps.prepare.outputs.tag_name }}" + git push origin ${{ steps.prepare.outputs.minor_tag }} + - + name: Update ${{ steps.prepare.outputs.major_tag }} tag + run: | + git push origin :refs/tags/${{ steps.prepare.outputs.major_tag }} + git tag -fa ${{ steps.prepare.outputs.major_tag }} -m "Release ${{ steps.prepare.outputs.tag_name }}" + git push origin ${{ steps.prepare.outputs.major_tag }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c10919e..b2d0850 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,9 +2,13 @@ name: test on: pull_request: - branches: master + branches: + - master + - releases/* push: - branches: master + branches: + - master + - releases/* jobs: test: diff --git a/README.md b/README.md index 72c1154..84e59fd 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,8 @@

GitHub release GitHub marketplace - Test workflow + Release workflow + Test workflow Support CrazyMax on Patreon

@@ -37,7 +38,7 @@ jobs: uses: actions/setup-go@master - name: Run GoReleaser - uses: goreleaser/goreleaser-action@master + uses: goreleaser/goreleaser-action@v1 with: version: latest args: release --rm-dist