# This workflow will do a clean install of ferdium dev-dependencies, update the dependencies, build the source code and run tests. It will only run on scheduled trigger. name: 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-20.04 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@v3 with: submodules: recursive fetch-depth: 0 # Note: Needed to be able to pull the 'develop' branch as well for merging - 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: Use Node.js specified in the '.nvmrc' file uses: actions/setup-node@v3 with: node-version-file: '.nvmrc' - name: Install npm run: npm i -gf "npm@$(node -p 'require("./package.json").engines.npm')" && npm -v - name: Install pnpm run: npm i -gf "pnpm@$(node -p 'require("./recipes/package.json").engines.pnpm')" && pnpm -v - name: Install node dependencies run: npm i - name: Update submodules run: | rm -rf ./recipes npm run update-submodules git add . echo "GIT_DIRTY=$(git status -s | wc -l)" >> $GITHUB_ENV - name: Update browserslist db run: | npx browserslist@latest --update-db git add . echo "GIT_DIRTY=$(git status -s | wc -l)" >> $GITHUB_ENV - name: Run linter, reformatter, rebrander and tests if: ${{ env.GIT_DIRTY != '0' }} run: | npm run prepare-code npm run test - name: Commit submodules, dependency-updates and linter changes if: ${{ env.GIT_DIRTY != '0' }} 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 if: ${{ env.GIT_DIRTY != '0' }} run: git push origin ${{ env.GIT_BRANCH_NAME }} --no-verify