Skip to content

Commit

Permalink
make cleaner workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
elevatebart committed Dec 1, 2023
1 parent 5146209 commit d2e5253
Show file tree
Hide file tree
Showing 7 changed files with 245 additions and 67 deletions.
72 changes: 72 additions & 0 deletions .github/workflows/PR-workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: PR - workflow

on:
pull_request:
types: [opened, reopened, synchronize, ready_for_review]

concurrency:
group: test-${{ github.ref_name }}
cancel-in-progress: true

jobs:
make-nonce:
runs-on: ubuntu-latest
outputs:
nonce: ${{ steps.nonce.outputs.nonce }}
steps:
- name: Simplify branch name
id: branch
uses: actions/github-script@v6
with:
script: |
const simpleBranchName = '${{ github.head_ref }}'.replace(/[^a-zA-Z0-9.-]/g, '').slice(0, 49)
core.setOutput('simpleBranchName', simpleBranchName)
- name: generate and Set nonce
id: nonce
run: |
echo "nonce=${{ github.run_id }}-${{ github.run_attempt }}-${{ steps.branch.outputs.simpleBranchName }}" >> $GITHUB_OUTPUT
echo "simpleBranchName=${{ steps.branch.outputs.simpleBranchName }}" >> $GITHUB_OUTPUT
- name: Display
run: echo ${{ toJSON(steps.nonce.outputs.nonce) }}

build:
name: Build
needs: [make-nonce]
uses: ./.github/workflows/build.yml
secrets: inherit
with:
nonce: ${{ needs.make-nonce.outputs.nonce }}

test:
name: Test
needs: [build, make-nonce]
uses: ./.github/workflows/test.yml
secrets: inherit
with:
nonce: ${{ needs.make-nonce.outputs.nonce }}

e2e-test:
name: E2E Test
needs: [build, make-nonce]
uses: ./.github/workflows/e2e-tests.yml
secrets: inherit
with:
nonce: ${{ needs.make-nonce.outputs.nonce }}

template-test:
name: Template Test
needs: [build, make-nonce]
uses: ./.github/workflows/template-test.yml
secrets: inherit
with:
nonce: ${{ needs.make-nonce.outputs.nonce }}

release:
name: Release
needs: [build, make-nonce]
uses: ./.github/workflows/release.yml
secrets: inherit
with:
nonce: ${{ needs.make-nonce.outputs.nonce }}
73 changes: 73 additions & 0 deletions .github/workflows/PROD-workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: PR - workflow

on:
push:
branches:
- main

concurrency:
group: test-${{ github.ref_name }}
cancel-in-progress: true

jobs:
make-nonce:
runs-on: ubuntu-latest
outputs:
nonce: ${{ steps.nonce.outputs.nonce }}
steps:
- name: Simplify branch name
id: branch
uses: actions/github-script@v6
with:
script: |
const simpleBranchName = '${{ github.head_ref }}'.replace(/[^a-zA-Z0-9.-]/g, '').slice(0, 49)
core.setOutput('simpleBranchName', simpleBranchName)
- name: generate and Set nonce
id: nonce
run: |
echo "nonce=${{ github.run_id }}-${{ github.run_attempt }}-${{ steps.branch.outputs.simpleBranchName }}" >> $GITHUB_OUTPUT
echo "simpleBranchName=${{ steps.branch.outputs.simpleBranchName }}" >> $GITHUB_OUTPUT
- name: Display
run: echo ${{ toJSON(steps.nonce.outputs.nonce) }}

build:
name: Build
needs: [make-nonce]
uses: ./.github/workflows/build.yml
secrets: inherit
with:
nonce: ${{ needs.make-nonce.outputs.nonce }}

test:
name: Test
needs: [build, make-nonce]
uses: ./.github/workflows/test.yml
secrets: inherit
with:
nonce: ${{ needs.make-nonce.outputs.nonce }}

e2e-test:
name: E2E Test
needs: [build, make-nonce]
uses: ./.github/workflows/e2e-tests.yml
secrets: inherit
with:
nonce: ${{ needs.make-nonce.outputs.nonce }}

template-test:
name: Template Test
needs: [build, make-nonce]
uses: ./.github/workflows/template-test.yml
secrets: inherit
with:
nonce: ${{ needs.make-nonce.outputs.nonce }}

release:
name: Release
needs: [build, make-nonce]
uses: ./.github/workflows/release.yml
secrets: inherit
with:
nonce: ${{ needs.make-nonce.outputs.nonce }}
45 changes: 45 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Build

on:
workflow_call:
inputs:
nonce:
type: string
required: true

jobs:
cypress-run:
runs-on: ubuntu-latest
steps:
- name: Checkout branch
uses: actions/checkout@v3

- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: 18.x

- name: Remove Postinstall Script
run: npm pkg set scripts.postinstall="echo no-postinstall"

- name: Install Dependencies
run: yarn install --frozen-lockfile
env:
CI: true

- name: Generate icon files
run: |
yarn turbo run build --filter=@cypress-design/css
yarn workspace @cypress-design/icon-registry svg-to-ts-constants
yarn workspace @cypress-design/icon-registry node ./build-icons.mjs
- name: Build Components
run: yarn run build:components

- name: Cache node_modules and built dist files
uses: actions/cache@v3
with:
key: ${{ inputs.nonce }}
path: |
./components
./node_modules
28 changes: 12 additions & 16 deletions .github/workflows/e2e-tests.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
name: Build each test

on: [push]
on:
workflow_call:
inputs:
nonce:
type: string
required: true

jobs:
build-projects:
runs-on: ubuntu-latest
steps:
- name: Get Yarn cache path
id: yarn-cache
run: echo "::set-output name=dir::$(yarn cache dir)"

- name: Checkout branch
uses: actions/checkout@v3

Expand All @@ -18,18 +19,13 @@ jobs:
with:
node-version: 18.x

- name: Load Yarn cache
uses: actions/cache@v2
- name: Restore cached build files
uses: actions/cache@v3
with:
path: ${{ steps.yarn-cache.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install Dependencies
run: yarn install --frozen-lockfile --ignore-engines
env:
CI: true
key: ${{ inputs.nonce }}
path: |
./components
./node_modules
- name: Build each test project
run: ./test/test-all-projects.sh
35 changes: 19 additions & 16 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,35 +1,38 @@
name: Release
on:
push:
branches:
- main

concurrency:
group: release-${{ github.ref }}
cancel-in-progress: true
on:
workflow_call:
inputs:
nonce:
type: string
required: true

jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
- name: Checkout branch
uses: actions/checkout@v3

- name: Setup Node.js
uses: actions/setup-node@v2
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
node-version: 18.x

- name: Restore cached build files
uses: actions/cache@v3
with:
key: ${{ inputs.nonce }}
path: |
./components
./node_modules
- name: Set committer info
## attribute the commit to cypress-bot: https://github.community/t/logging-into-git-as-a-github-app/115916
run: |
git config --local user.email "${{ secrets.CYPRESS_BOT_APP_ID }}+cypress-bot[bot]@users.noreply.github.com"
git config --local user.name "cypress-bot[bot]"
- name: Yarn install
run: yarn install

- name: Build components
run: yarn build:components

- name: Configure .npmrc
run: |
cat << EOF > "$HOME/.npmrc"
Expand Down
28 changes: 12 additions & 16 deletions .github/workflows/template-test.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
name: Template Tests

on: [push]
on:
workflow_call:
inputs:
nonce:
type: string
required: true

jobs:
template-test:
runs-on: ubuntu-latest
steps:
- name: Get Yarn cache path
id: yarn-cache
run: echo "::set-output name=dir::$(yarn cache dir)"

- name: Checkout branch
uses: actions/checkout@v3

Expand All @@ -18,22 +19,17 @@ jobs:
with:
node-version: 18.x

- name: Load Yarn cache
uses: actions/cache@v2
- name: Restore cached build files
uses: actions/cache@v3
with:
path: ${{ steps.yarn-cache.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
key: ${{ inputs.nonce }}
path: |
./components
./node_modules
- name: Remove Postinstall Script
run: npm pkg set scripts.postinstall="echo no-postinstall"

- name: Install Dependencies
run: yarn install --frozen-lockfile
env:
CI: true

- name: Create component with template
run: yarn new:component --name ComponentName

Expand Down
31 changes: 12 additions & 19 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
name: Tests

on: [push]
on:
workflow_call:
inputs:
nonce:
type: string
required: true

jobs:
cypress-run:
runs-on: ubuntu-latest
steps:
- name: Get Yarn cache path
id: yarn-cache
run: echo "::set-output name=dir::$(yarn cache dir)"

- name: Checkout branch
uses: actions/checkout@v3

Expand All @@ -18,21 +19,13 @@ jobs:
with:
node-version: 18.x

- name: Load Yarn cache
uses: actions/cache@v2
- name: Restore cached build files
uses: actions/cache@v3
with:
path: ${{ steps.yarn-cache.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Remove Postinstall Script
run: npm pkg set scripts.postinstall="echo no-postinstall"

- name: Install Dependencies
run: yarn install --frozen-lockfile
env:
CI: true
key: ${{ inputs.nonce }}
path: |
./components
./node_modules
- name: Lint all files
run: yarn eslint .
Expand Down

0 comments on commit d2e5253

Please sign in to comment.