Merge pull request #886 from Availity/dependabot/npm_and_yarn/tar-7.5.9 #509
This file contains hidden or 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
| # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node | |
| # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions | |
| name: Publish Release | |
| on: | |
| push: | |
| branches: [main] | |
| jobs: | |
| setup: | |
| if: "${{!contains(github.event.head_commit.message, 'skip ci') && !contains(github.event.head_commit.message, 'Release: Version Updates')}}" | |
| runs-on: ubuntu-latest | |
| permissions: | |
| actions: read | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 | |
| with: | |
| fetch-depth: 0 | |
| ref: 'main' | |
| - name: Derive appropriate SHAs for base and head for `nx affected` commands | |
| uses: nrwl/nx-set-shas@826660b82addbef3abff5fa871492ebad618c9e1 # v4.3.3 | |
| - name: Set Node Version | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
| with: | |
| node-version: 24 | |
| - name: Get yarn cache directory path | |
| id: yarn-cache-dir-path | |
| run: | | |
| echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT | |
| - name: Restore yarn cache | |
| uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 | |
| id: yarn-cache | |
| with: | |
| path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
| key: ${{ runner.os }}-24-yarn-${{ hashFiles('**/yarn.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-24-yarn- | |
| - name: Install Dependencies | |
| run: yarn install --immutable | |
| - name: Lint Affected Code | |
| run: yarn lint:affected | |
| - name: Unit Test Affected Code | |
| run: yarn test:affected | |
| publish: | |
| if: "${{!contains(github.event.head_commit.message, 'skip ci') && !contains(github.event.head_commit.message, 'Release: Version Updates')}}" | |
| needs: [setup] | |
| runs-on: ubuntu-latest | |
| outputs: | |
| has_changes: ${{ steps.changes.outputs.has_changes }} | |
| permissions: | |
| contents: write # Required for git push and creating tags | |
| pull-requests: write # Required for creating pull requests | |
| id-token: write | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| fetch-depth: 0 | |
| ref: 'main' | |
| - name: Derive appropriate SHAs for base and head for `nx affected` commands | |
| uses: nrwl/nx-set-shas@826660b82addbef3abff5fa871492ebad618c9e1 # v4.3.3 | |
| - name: Set Node Version | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
| with: | |
| node-version: 24 | |
| - name: Install latest npm | |
| run: npm install -g npm@latest | |
| - name: Get yarn cache directory path | |
| id: yarn-cache-dir-path | |
| run: | | |
| echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT | |
| - name: Restore yarn cache | |
| uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 | |
| id: yarn-cache | |
| with: | |
| path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
| key: ${{ runner.os }}-24-yarn-${{ hashFiles('**/yarn.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-24-yarn- | |
| - name: Install Dependencies | |
| run: yarn install --immutable | |
| - name: Build Packages | |
| run: yarn build | |
| - name: Setup Publish Config | |
| run: | | |
| git config user.email ${{ secrets.GH_EMAIL }} | |
| git config user.name ${{ secrets.GH_USER }} | |
| - name: Store initial commit SHA | |
| id: initial-sha | |
| run: echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT | |
| - name: Version Packages | |
| run: | | |
| yarn nx affected --target version --parallel=1 | |
| - name: Check for Version Changes | |
| id: changes | |
| run: | | |
| INITIAL_SHA="${{ steps.initial-sha.outputs.sha }}" | |
| CURRENT_SHA=$(git rev-parse HEAD) | |
| if [ "$INITIAL_SHA" = "$CURRENT_SHA" ]; then | |
| echo "has_changes=false" >> $GITHUB_OUTPUT | |
| echo "No new commits created by version step" | |
| else | |
| echo "has_changes=true" >> $GITHUB_OUTPUT | |
| echo "New commits created by version step" | |
| fi | |
| - name: Publish | |
| if: steps.changes.outputs.has_changes == 'true' | |
| run: | | |
| yarn nx affected --target publish --parallel=1 | |
| - name: Create Release PR | |
| if: steps.changes.outputs.has_changes == 'true' | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| echo "Creating PR because changes detected: ${{ steps.changes.outputs.has_changes }}" | |
| git push origin --delete release/version-updates || true | |
| git checkout -b release/version-updates | |
| git push origin release/version-updates | |
| git push origin --tags | |
| gh pr create --title "Release: Version Updates" --body "Automated release PR with version updates and package publications." --base main --head release/version-updates | |
| deploy-docs: | |
| if: "${{!contains(github.event.head_commit.message, 'skip ci') && !contains(github.event.head_commit.message, 'Release: Version Updates')}}" | |
| needs: [setup] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 | |
| with: | |
| fetch-depth: 0 | |
| ref: ${{ github.sha }} | |
| - name: Set Node Version | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
| with: | |
| node-version: 24 | |
| cache: 'yarn' | |
| cache-dependency-path: 'yarn.lock' | |
| - name: Install Dependencies | |
| run: yarn install --immutable | |
| - name: Build Packages | |
| run: yarn build | |
| - name: Build Docs | |
| run: yarn build:storybook:ci | |
| - name: Deploy to GitHub Pages | |
| uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4.0.0 | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| publish_dir: dist/storybook | |
| keep_files: true | |
| enable_jekyll: false |