Skip to content

Commit

Permalink
chore(ci): setup nx agents and improve other CI workflows
Browse files Browse the repository at this point in the history
  • Loading branch information
tinesoft committed Mar 23, 2024
1 parent 4574a95 commit db01e40
Show file tree
Hide file tree
Showing 13 changed files with 262 additions and 150 deletions.
2 changes: 1 addition & 1 deletion .github/actions/install-dependencies/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ inputs:
runs:
using: 'composite'
steps:
- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v3
with:
version: 8.2

Expand Down
56 changes: 56 additions & 0 deletions .github/actions/setup/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: 'Setup Build Tools and Dependencies'
description: Setup node, pnpm, java, flutter, cache, and install dependencies

inputs:
node-version: # id of input
description: 'Node version'
required: false
default: 20

runs:
using: 'composite'
steps:
- name: Derive appropriate SHAs for base and head for `nx affected` commands
uses: nrwl/nx-set-shas@v4

- name: Setup PNPM
uses: pnpm/action-setup@v3
with:
version: 8.2

- name: Setup Node.js ${{ inputs.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node-version }}
cache: 'pnpm'

- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17
- run: java -version
shell: bash

- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: 'stable'
cache: true
cache-key: 'flutter-:os:-:channel:-:version:-:arch:-:hash:' # optional, change this to force refresh cache
cache-path: '${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:' # optional, change this to specify the cache path
architecture: x64 # optional, x64 or arm64
- run: flutter --version
shell: bash

- name: Cache node_modules
id: cache-modules
uses: actions/cache@v4
with:
lookup-only: true
path: '**/node_modules'
key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}

- name: Install packages
run: pnpm install --frozen-lockfile
shell: bash
37 changes: 37 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: CI

on:
push:
branches:
- develop
pull_request:

# Needed for nx-set-shas when run on the main branch
permissions:
actions: read
contents: read

jobs:
develop:
runs-on: ubuntu-latest
env:
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
timeout-minutes: 60
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Install node, pnpm, and dependencies
uses: ./.github/actions/install-dependencies

# Connect your workspace on nx.app and uncomment this to enable task distribution.
# The "--stop-agents-after" is optional, but allows idle agents to shut down once the "e2e" targets have been requested
- run: pnpm exec nx-cloud start-ci-run --distribute-on=".nx/workflows/dynamic-changesets.yaml" --stop-agents-after="e2e"

# This line is needed for nx affected to work when CI is running on a PR
- run: git branch --track develop origin/develop

- run: pnpm exec nx-cloud record -- nx format:check
- run: pnpm exec nx affected -t lint test build e2e --exclude=smoke --codeCoverage
4 changes: 2 additions & 2 deletions .github/workflows/commintlint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: wagoid/commitlint-github-action@v4
- uses: wagoid/commitlint-github-action@v5
with:
configFile: '.commitlintrc.js'
configFile: '.commitlintrc.js'
61 changes: 0 additions & 61 deletions .github/workflows/run-e2e-tests.yml

This file was deleted.

48 changes: 0 additions & 48 deletions .github/workflows/run-smoke-tests.yml

This file was deleted.

33 changes: 0 additions & 33 deletions .github/workflows/run-unit-tests.yml

This file was deleted.

35 changes: 35 additions & 0 deletions .github/workflows/smoke-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Nightly Smoke Tests

on:
# Trigger manually or on schedule
workflow_dispatch:
schedule:
- cron: '0 0 * * *'

jobs:
run_smoke_tests:
name: Smoke Tests
runs-on: ${{ matrix.os }}
env:
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
timeout-minutes: 60
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
node-version: [20]
steps:
- name: Checkout Repo
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup node, pnpm, java, flutter, and dependencies
uses: ./.github/actions/setup
with:
node-version: ${{ matrix.node-version }}

- name: Run smoke tests
env:
NX_E2E_CI_CACHE_KEY: smoke-gha-${{ matrix.os }}-${{ matrix.node-version }}
NX_RUN_GROUP: ${{ github.run_id }}-${{ matrix.os }}-${{ matrix.node-version }}
run: pnpm nx test smoke --verbose
1 change: 1 addition & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

pnpm affected:format
pnpm affected:lint
pnpm affected:test
pnpm sync-preset-schemas
Loading

0 comments on commit db01e40

Please sign in to comment.