aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/dependency-updates.yml
blob: 8e7b5ae8e96bacb97081a0177bdcd3ad0c1e0a32 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# This workflow will do a clean install of ferdi dev-dependencies, update the dependencies, build the source code and run tests. It will only run on scheduled trigger.

name: Ferdi Dependency updates

on:
  # Manual trigger from the UI
  workflow_dispatch:
    inputs:
      message:
        description: 'Message for build'
        required: true
  schedule:
    - cron: '0 0 * * *' # every night at 12 am

env:
  USE_HARD_LINKS: false

jobs:
  dependency_updates:
    runs-on: ubuntu-latest
    steps:
      - name: Set env vars
        run: |
          echo "NPM_CACHE=$HOME/.npm" >> $GITHUB_ENV
          echo "PNPM_CACHE=$HOME/.pnpm-store" >> $GITHUB_ENV
      - name: Checkout code along with submodules
        uses: actions/checkout@v2
        with:
          submodules: recursive
      - name: Extract Git branch name and commit from the currently checked out branch (not from the branch where this run was kicked off)
        run: |
          echo "GIT_BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV
        shell: bash
      - name: Cache node modules
        uses: actions/cache@v2
        env:
          cache-name: cache-node-modules
        with:
          path: ${{ env.NPM_CACHE }}
          key: ${{ runner.os }}-14.18-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
          restore-keys: |
            ${{ runner.os }}-14.18-build-${{ env.cache-name }}-
            ${{ runner.os }}-14.18-build-
      - name: Cache pnpm modules
        uses: actions/cache@v2
        env:
          cache-name: cache-pnpm-store
        with:
          path: ${{ env.PNPM_CACHE }}
          key: ${{ runner.os }}-14.18-build-${{ env.cache-name }}-${{ hashFiles('**/pnpm-lock.yaml') }}
      - name: Use Node.js 14.18.1
        uses: actions/setup-node@v2
        with:
          node-version: 14.18.1
      - name: Install pnpm
        uses: pnpm/action-setup@v2.0.1
        with:
          version: 6.17.1
      - name: Uninstall locally and reinstall global npm modules
        run: |
          npm uninstall node-gyp
          npm ls -g node-gyp@8.2.0 || npm i -g node-gyp@8.2.0
      - name: Install node dependencies
        run: npm i
      - name: Update submodules
        run: npm run update-submodules
      - name: Update browserslist db
        run: npx browserslist@latest --update-db
      - name: Run linter, reformatter, rebrander and tests
        run: |
          npm run prepare-code
          npm run test
      - name: Commit submodules, dependency-updates and linter changes
        run: |
          git config user.name github-actions
          git config user.email github-actions@github.com
          git commit -am "Update submodules, browserslist data updates and linter fixes [skip ci]" --no-verify || true
      - name: Push all changes
        run: git push origin ${{ env.GIT_BRANCH_NAME }} --no-verify