Merge branch 'main' of https://github.com/sullivanpj/open-system #347
This file contains 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
name: "CI/CD" | |
on: | |
workflow_dispatch: | |
inputs: | |
tag: | |
description: override release tag | |
required: false | |
push: | |
branches: | |
- "main" | |
- "alpha" | |
- "beta" | |
env: | |
CI: true | |
NX_DAEMON: false | |
NX_VERBOSE_LOGGING: true | |
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }} | |
NX_CLOUD_AUTH_TOKEN: ${{ secrets.NX_CLOUD_AUTH_TOKEN }} | |
GITHUB_ACTOR: "🤖 Open-System Bot" | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
jobs: | |
build-and-release: | |
if: github.repository == 'sullivanpj/open-system' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/alpha' || github.ref == 'refs/heads/beta') | |
name: "Build & Release" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: configure git | |
run: | | |
git config user.name "${GITHUB_ACTOR}" | |
git config user.email "${GITHUB_ACTOR}@users.noreply.github.com" | |
- name: Setup pnpm | |
uses: pnpm/action-setup@v2.2.4 | |
with: | |
version: 8 | |
- uses: actions/setup-node@v3 | |
with: | |
registry-url: https://registry.npmjs.org/ | |
node-version-file: .github/.nvmrc | |
cache: pnpm | |
cache-dependency-path: pnpm-lock.yaml | |
- name: Install Dependencies | |
run: pnpm i | |
- name: Get appropriate base and head commits for `nx affected` commands | |
uses: nrwl/nx-set-shas@v3 | |
with: | |
main-branch-name: "main" | |
- name: Set appropriate base and head commits for `nx affected` commands | |
run: | | |
echo "BASE: ${{ env.NX_BASE }}" | |
echo "HEAD: ${{ env.NX_HEAD }}" | |
- name: Prepare for build | |
run: pnpm build:tools-ci | |
#- name: Run Linters | |
# run: pnpm nx affected -t lint --parallel=3 --base=${{ env.NX_BASE }} --head=${{ env.NX_HEAD }} | |
- name: Run Formatters | |
run: pnpm nx format | |
# - run: npx nx affected -t lint --parallel=3 | |
# - run: npx nx affected -t test --parallel=3 --configuration=ci --base=${{ github.event.before }} | |
- name: Build repository packages | |
run: pnpm nx affected -t build --parallel=3 --exclude="core-server-cloudflare,worker-*" --base=${{ env.NX_BASE }} --head=${{ env.NX_HEAD }} | |
# run: pnpm nx affected -t build --parallel=3 --base=${{ env.NX_BASE }} --head=${{ env.NX_HEAD }} | |
#- name: Run Tests | |
# uses: nick-fields/retry@v2.8.3 | |
# with: | |
# command: npx nx affected -t test --parallel=3 --configuration=ci --base=${{ github.event.before }} | |
# timeout_minutes: 10 | |
# max_attempts: 3 | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
- name: Release Library Version Updates | |
run: npx nx affected -t semantic-release --parallel=3 --base=${{ env.NX_BASE }} --head=${{ env.NX_HEAD }} | |
#- name: Release Repository Version Updates | |
# run: pnpm nx run-many --target=semantic-release --parallel=false | |
- name: Create Pull Request | |
uses: repo-sync/pull-request@v2 | |
with: | |
destination_branch: main | |
pr_title: "chore(repo): Github CI/CD automated updates" | |
pr_body: "This changeset is the result of updates made in the repository's files via the CI/CD pipeline automatically. The changes include linting, formatting, and version updates." | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
# - name: Publish | |
# run: | | |
# git config --global user.name 'Pat Sullivan' | |
# git config --global user.email 'sullivanpj@users.noreply.github.com' | |
# npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}" | |
# npm run cipublish | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
# NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
# TAG: ${{ inputs.tag }} | |
#- name: Release Library Version Updates | |
# run: npx nx affected -t semantic-release --parallel=3 --base=${{ env.NX_BASE }} --head=${{ env.NX_HEAD }} | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
#- name: Release Repository Version Updates | |
# run: npm run semantic-release | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# - name: Build Latest Documentation | |
# run: npx nx run docs:build |