-
-
Notifications
You must be signed in to change notification settings - Fork 36
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore(ci): setup nx agents and improve other CI workflows
- Loading branch information
Showing
13 changed files
with
202 additions
and
147 deletions.
There are no files selected for viewing
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
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
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 |
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
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="5 linux-small-js-java-flutter" --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 |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
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
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 |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
const { execSync } = require('child_process'); | ||
|
||
console.log('Installing Flutter using snap'); | ||
execSync('sudo snap install flutter --classic', { stdio: 'inherit' }); | ||
execSync('flutter --version', { stdio: 'inherit' }); |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
name: Install Flutter | ||
description: Installs Flutter using snap | ||
|
||
definition: | ||
using: 'node' | ||
main: .nx/workflow-steps/install-flutter/main.js |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
const { execSync } = require('child_process'); | ||
|
||
const jdkVersion = process.env.JDK_VERSION || '17'; | ||
const jdkDistro = process.env.JDK_DISTRO || 'ms'; | ||
|
||
const javaVersion = `${jdkVersion}-${jdkDistro}`; | ||
|
||
console.log('Installing SDKMan! first'); | ||
execSync('curl -s "https://get.sdkman.io" | bash', { stdio: 'inherit' }); | ||
execSync('source "$HOME/.sdkman/bin/sdkman-init.sh"', { stdio: 'inherit' }); | ||
execSync('sdk version', { stdio: 'inherit' }); | ||
|
||
console.log('Installing Java using SDKMan!'); | ||
execSync(`sdk install java ${javaVersion}`, { stdio: 'inherit' }); | ||
execSync(`sdk use java ${javaVersion}`, { stdio: 'inherit' }); | ||
|
||
execSync('java -version', { stdio: 'inherit' }); |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
name: Install Java | ||
description: Installs Java using SDKMan! | ||
|
||
definition: | ||
using: 'node' | ||
main: .nx/workflow-steps/install-java/main.js |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
launch-templates: | ||
linux-small-js-java-flutter: | ||
resource-class: 'docker_linux_amd64/small' | ||
image: 'ubuntu22.04-node20.9-v2' | ||
init-steps: | ||
- name: Checkout | ||
uses: 'nrwl/nx-cloud-workflows/v3.5/workflow-steps/checkout/main.yaml' | ||
- name: Restore Node Modules Cache | ||
uses: 'nrwl/nx-cloud-workflows/v3.5/workflow-steps/cache/main.yaml' | ||
env: | ||
KEY: 'package-lock.json|yarn.lock|pnpm-lock.yaml' | ||
PATHS: 'node_modules' | ||
BASE_BRANCH: 'main' | ||
- name: Restore Maven/Gradle Cache | ||
uses: 'nrwl/nx-cloud-workflows/v3.5/workflow-steps/cache/main.yaml' | ||
env: | ||
KEY: 'pom.xml|build.gradle|build.gradle.kts|settings.gradle|settings.gradle.kts' | ||
PATHS: '~/.m2/repository' | ||
BASE_BRANCH: 'main' | ||
#- name: Restore Browser Binary Cache | ||
# uses: 'nrwl/nx-cloud-workflows/v3.5/workflow-steps/cache/main.yaml' | ||
# env: | ||
# KEY: 'package-lock.json|yarn.lock|pnpm-lock.yaml|"browsers"' | ||
# PATHS: | | ||
# '../.cache/Cypress' | ||
# '../.cache/ms-playwright' | ||
# BASE_BRANCH: 'main' | ||
- name: Install Node Modules | ||
uses: 'nrwl/nx-cloud-workflows/v3.5/workflow-steps/install-node-modules/main.yaml' | ||
#- name: Install Browsers (if needed) | ||
# uses: 'nrwl/nx-cloud-workflows/v3.5/workflow-steps/install-browsers/main.yaml' | ||
- name: Install Java | ||
uses: 'tinesoft/nxrocks/chore/nx-cloud/.nx/workflow-steps/install-java/main.yaml' | ||
- name: Install Flutter | ||
uses: 'tinesoft/nxrocks/chore/nx-cloud/.nx/workflow-steps/install-flutter/main.yaml' |
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