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 15, 2024
1 parent 4574a95 commit ed7ab19
Show file tree
Hide file tree
Showing 8 changed files with 131 additions and 147 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
54 changes: 54 additions & 0 deletions .github/actions/setup/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
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

- 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

- 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: Setup node, pnpm, java, flutter, cache, and install dependencies
uses: ./.github/actions/setup

# 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="5 linux-medium-js" --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
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
8 changes: 4 additions & 4 deletions nx.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"changelog": {
"projectChangelogs": {
"createRelease": "github"
}
}
},
"version": {
"conventionalCommits": true
Expand Down Expand Up @@ -60,9 +60,9 @@
"nx-release-publish": {
"dependsOn": ["build"],
"options": {
"packageRoot": "{workspaceRoot}/dist/packages/{projectName}"
"packageRoot": "{workspaceRoot}/dist/packages/{projectName}"
}
}
}
},
"namedInputs": {
"default": ["{projectRoot}/**/*", "sharedGlobals"],
Expand All @@ -80,7 +80,7 @@
"!{projectRoot}/src/test-setup.[jt]s"
]
},
"nxCloudAccessToken": "OTMwZTE2ZDgtODg2NS00Y2M1LTg0OTMtNGU3ZmI0NzY4YTUyfHJlYWQtd3JpdGU=",
"nxCloudAccessToken": "ZDRmZDczZWUtMDU2My00YzQ0LTlkMWEtZjM2YjZlZWNmNGIxfHJlYWQ=",
"parallel": 1,
"plugins": []
}

0 comments on commit ed7ab19

Please sign in to comment.