# 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