valor-software/ng2-dragula

View on GitHub
.github/workflows/on-release.yml

Summary

Maintainability
Test Coverage
name: on-release
on:
  push:
    tags:
      - v*

env:
  NX_BRANCH: ${{ github.event.number }}
  NX_RUN_GROUP: ${{ github.run_id }}
  NX_CLOUD_AUTH_TOKEN: ${{ secrets.NX_CLOUD_AUTH_TOKEN }}
  MOZ_HEADLESS: 1
  CONVENTIONAL_GITHUB_RELEASER_TOKEN: ${{ secrets.GITHUB_TOKEN }}

jobs:
  # one run
  one_run:
    runs-on: ubuntu-latest
    steps:
      - name: Cancel Previous Runs
        uses: styfle/cancel-workflow-action@0.11.0
        with:
          access_token: ${{ secrets.GITHUB_TOKEN }}

  # install dependencies
  install:
    runs-on: ubuntu-latest
    needs: one_run
    steps:
      - uses: actions/checkout@v3
      - uses: actions/cache@v3
        id: cache
        with:
          path: node_modules
          key: node_modules-${{ hashFiles('**/package-lock.json') }}
      - run: npm ci
        if: steps.cache.outputs.cache-hit != 'true'

  # build ng2-dragula
  build:
    needs: install
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/cache@v3
        with:
          path: node_modules
          key: node_modules-${{ hashFiles('**/package-lock.json') }}
      - uses: actions/cache@v3
        with:
          path: dist
          key: dist-${{ github.run_id }}
      - run: |
          npx nx build ng2-dragula --configuration production
          npx nx build demo --configuration production
  # update release notes in github
  update_release_draft:
    needs: install
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/cache@v3
        with:
          path: node_modules
          key: node_modules-${{ hashFiles('**/package-lock.json') }}
      - run: npx conventional-github-releaser -p angular

  # update gh_pages
  gh_pages_deploy:
    runs-on: ubuntu-latest
    needs: build
    steps:
      - uses: actions/checkout@v3
      - uses: actions/checkout@v3
        with:
          ref: 'gh-pages'
          path: 'gh-pages'

      - uses: actions/cache@v3
        with:
          path: node_modules
          key: node_modules-${{ hashFiles('**/package-lock.json') }}
      - uses: actions/cache@v3
        with:
          path: dist
          key: dist-${{ github.run_id }}

      #      - run: npm run scully
      - run: |
          cd gh-pages
          git config user.email gh-actions-${GITHUB_ACTOR}@github.com
          git config user.name $GITHUB_ACTOR
          git add -A
          git commit -am "ci: gh-pages update"
        continue-on-error: true
      - name: push to gh-pages
        uses: ad-m/github-push-action@v0.6.0
        continue-on-error: true
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          branch: 'gh-pages'
          directory: 'gh-pages'

  # publish to npm
  npm_publish:
    runs-on: ubuntu-latest
    needs: build
    steps:
      - uses: actions/checkout@v3
      - uses: actions/cache@v3
        with:
          path: node_modules
          key: node_modules-${{ hashFiles('**/package-lock.json') }}
      - uses: actions/cache@v3
        with:
          path: dist
          key: dist-${{ github.run_id }}
      - uses: JS-DevTools/npm-publish@v1
        with:
          package: "./dist/ng2-dragula/package.json"
          token: ${{ secrets.NPM_TOKEN }}