Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: update the workflow to multiple jobs and add publish job #14

Merged
merged 1 commit into from
Sep 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 71 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,90 @@ on:
branches: [main]

jobs:
build:
install:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Prepare pnpm
uses: pnpm/action-setup@v2

- name: Prepare Node.js
uses: actions/setup-node@v3.8.1
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v3
with:
node-version-file: .node-version
cache: pnpm
- run: pnpm install

- name: Install deps
run: pnpm install
test:
needs: install
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v3
with:
node-version-file: .node-version
cache: pnpm
- run: pnpm install

- name: Prettier code style check
run: pnpm prettier . --check

- name: Test
run: pnpm run test

build:
needs: install
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v3
with:
node-version-file: .node-version
cache: pnpm
- run: pnpm install

- name: Build
run: pnpm run build

- name: Archive production artifacts
uses: actions/upload-artifact@v3
with:
name: mono-repos-dist
path: |
packages/**/dist/**

publish:
needs: [build, test]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v3
with:
node-version-file: .node-version
cache: pnpm
- run: pnpm install

- name: Download production artifacts
uses: actions/download-artifact@v3
with:
name: mono-repos-dist

- name: Publish (development)
if: github.event.pull_request.head.repo.full_name == 'RightCapitalHQ/frontend-libraries' && github.base_ref == github.event.repository.default_branch
env:
NPM_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }}
run: |
npm config set //registry.npmjs.org/:_authToken "${NPM_TOKEN}"
preid=$(sed -e s:/:-:g <<<${{ github.head_ref }}).${{ github.run_number }}.${{ github.run_attempt }}
pnpm --filter './packages/*' exec npm --no-git-tag-version version prerelease --preid="${preid}"
pnpm --filter './packages/*' publish --no-git-checks --access public --tag development

- name: Publish (main)
if: github.repository == 'RightCapitalHQ/frontend-libraries' && github.event_name == 'push' && github.ref_name == github.event.repository.default_branch
env:
NPM_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }}
run: |
npm config set //registry.npmjs.org/:_authToken "${NPM_TOKEN}"
git config --local user.email "npm-publisher@rightcapital.com"
git config --local user.name "GitHub Actions[bot]"
pnpm beachball publish --yes -m 'chore(release): applying package updates'
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
"create:library": "python scripts/create-new-library.py",
"commit": "cz",
"changelog:fix": "pnpm eachpkg --parallel exec generate-changelog",
"change": "beachball change",
"change": "beachball change --no-commit",
"check": "beachball check"
},
"license": "MIT",
Expand Down