Skip to content

ci(github): migrate yarn to pnpm #936

ci(github): migrate yarn to pnpm

ci(github): migrate yarn to pnpm #936

Workflow file for this run

name: Node.js
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
test:
name: Node.js v${{ matrix.node-version }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
node-version: [20, 18, 16]
os: [ubuntu-latest, windows-latest, macos-latest]
exclude:
- os: macos-latest
node-version: 12
- os: macos-latest
node-version: 14
steps:
- name: Config git
run: git config --global core.autocrlf input
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: pnpm
- name: Restore Node cache
uses: actions/cache@v3
with:
path: |
.eslintcache
node_modules
*/node_modules
*/*/node_modules
key: ${{ runner.os }}-node${{ matrix.node-version }}-${{ hashFiles('**/package.json') }}-${{ secrets.CACHE_VERSION }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: |
pnpm prepare
pushd packages/cordova
npx nx build
popd
pushd internal/rollup-config
# pnpm prepack
popd
# pnpm lerna run --stream prepublishOnly
- name: Test
run: |
# pnpm lint
pnpm test
shell: bash
test-android:
name: Android on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
node-version: [16.x]
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '8'
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: pnpm
- name: Restore Node cache
uses: actions/cache@v3
with:
path: |
node_modules
*/node_modules
*/*/node_modules
key: ${{ runner.os }}-node${{ matrix.node-version }}-${{ hashFiles('**/package.json') }}-${{ secrets.CACHE_VERSION }}
- name: Restore Gradle cache
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Install dependencies
run: |
echo "/usr/local/lib/android/sdk/platform-tools" >> $GITHUB_PATH
echo "/usr/local/lib/android/sdk/tools" >> $GITHUB_PATH
pnpm i
pushd examples/cordova
pnpm cordova prepare
pnpm cordova platform rm ios
popd
#
- name: Test
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 28
script: |
cd examples/cordova
# pnpm test
test-ios:
name: iOS on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
node-version: [16.x]
os: [macos-latest]
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: pnpm
- name: Restore Node cache
uses: actions/cache@v3
with:
path: |
node_modules
*/node_modules
*/*/node_modules
key: ${{ runner.os }}-node${{ matrix.node-version }}-${{ hashFiles('**/package.json') }}-${{ secrets.CACHE_VERSION }}
- name: Install dependencies
run: |
pnpm i
pushd examples/cordova
pnpm cordova prepare
pnpm cordova platform rm android
popd
pushd examples/ionic3
pnpm i
popd
- name: Test
run: |
pnpm test-ios
pushd examples/cordova
# pnpm test:ios
popd
pushd examples/ionic3
pnpm build --prod
popd
link-checker:
name: Check links
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: lychee Link Checker
id: lc
uses: lycheeverse/lychee-action@v1.8.0
with:
args: >
README.md
packages/*/README.md
website/**/*.md
--base https://admob-plus.github.io
--config lychee.toml
fail: true
deploy-docs:
name: Deploy website
needs: [test]
if: github.event_name != 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v3
with:
node-version: '18.x'
cache: pnpm
- uses: webfactory/ssh-agent@v0.5.4
with:
ssh-private-key: ${{ secrets.GH_PAGES_DEPLOY }}
- name: Release to GitHub Pages
run: |
git config --global user.name "${GIT_USER}"
git config --global user.email "${{ secrets.GH_EMAIL }}"
pushd website
pnpm deploy
popd
env:
GIT_USER: "${{ secrets.GH_NAME }}"
USE_SSH: true
DEPLOYMENT_BRANCH: master
- name: Check links
id: lc
uses: lycheeverse/lychee-action@v1
with:
args: >
build/**/*.html
--config lychee.toml
fail: true
- uses: hkusu/status-create-action@v1
id: status-create
with:
sha: ${{ github.sha }}
state: success
- name: Status creation result
if: always()
run: echo '${{ steps.status-create.outputs.result }}'