Skip to content

Update Content Scope Scripts #1133

Update Content Scope Scripts

Update Content Scope Scripts #1133

name: Update Content Scope Scripts
on:
schedule:
- cron: '30 1 * * *' # run at 1 AM UTC
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
update-content-scope-scripts:
name: Update Content Scope scripts
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install npm-check-updates
run: npm install -g npm-check-updates
- name: Check for updates
id: update-check
continue-on-error: true
run: ncu @duckduckgo/content-scope-scripts --errorLevel 2
- name: Update content scope scripts
if: ${{ steps.update-check.outcome == 'failure' }}
run: ncu @duckduckgo/content-scope-scripts -u
- name: Install package
if: ${{ steps.update-check.outcome == 'failure' }}
run: npm update
- name: Find latest release version of Content Scope scripts in package.json
if: ${{ steps.update-check.outcome == 'failure' }}
id: find-latest-release
uses: notiz-dev/github-action-json-property@release
with:
path: 'package.json'
prop_path: 'dependencies.@duckduckgo/content-scope-scripts'
- name: Extract release version
if: ${{ steps.update-check.outcome == 'failure' }}
uses: rishabhgupta/split-by@v1
id: extract-release-version
with:
string: ${{steps.find-latest-release.outputs.prop}}
split-by: '#'
- name: Create Pull Request in Android repo
if: ${{ steps.update-check.outcome == 'failure' }}
env:
RELEASE_VERSION: ${{ steps.extract-release-version.outputs._1}}
id: create-pr
uses: peter-evans/[email protected]
with:
base: "develop"
title: Update content scope scripts to version ${{ steps.extract-release-version.outputs._1}}
author: daxmobile <[email protected]>
token: ${{ secrets.GT_DAXMOBILE }}
commit-message: Update content scope scripts to version ${{ steps.extract-release-version.outputs._1}}
labels: content scope scripts, automated pr
branch: automated/update-content-scope-scripts-dependencies-${{ steps.extract-release-version.outputs._1}}
body: |
- Automated content scope scripts dependency update
This PR updates the content scope scripts dependency to the latest available version and copies the necessary files.
Tests will only run if something has changed in the `node_modules/@duckduckgo/content-scope-scripts` folder.
If only the package version has changed, there is no need to run the tests.
If tests have failed, see https://app.asana.com/0/1202561462274611/1203986899650836/f for further information on what to do next.
_`content-scope-scripts` folder update_
- [ ] All tests must pass
- [ ] Privacy tests must pass
_Only `content-scope-scripts` package update_
- [ ] All tests must pass
- [ ] Privacy tests do not need to run
- name: Create Asana task in Android App project
if: ${{ steps.update-check.outcome == 'failure' }}
id: create-task
uses: duckduckgo/[email protected]
with:
asana-pat: ${{ secrets.ASANA_ACCESS_TOKEN }}
asana-project: ${{ vars.GH_ANDROID_APP_PROJECT_ID }}
asana-section: ${{ vars.GH_ANDROID_APP_INCOMING_SECTION_ID }}
asana-task-name: Update content scope scripts to version ${{ steps.extract-release-version.outputs._1}}
asana-task-description: |
Content scope scripts have been updated and a PR created.
Tests will **only** run if something has changed in the `node_modules/@duckduckgo/content-scope-scripts` folder.
If only `content-scope-scripts` package version has changed, there is no need to run the tests.
If tests have failed, see https://app.asana.com/0/1202561462274611/1203986899650836/f for further information on what to do next.
See ${{ steps.create-pr.outputs.pull-request-url }}
action: 'create-asana-task'
- name: Add Asana task to Release Board project
if: ${{ steps.create-task.outputs.duplicate == 'false' }}
uses: duckduckgo/[email protected]
with:
asana-pat: ${{ secrets.ASANA_ACCESS_TOKEN }}
asana-project: ${{ vars.GH_ANDROID_RELEASE_BOARD_PROJECT_ID }}
asana-section: ${{ vars.GH_ANDROID_RELEASE_BOARD_PR_SECTION_ID }}
asana-task-id: ${{ steps.create-task.outputs.taskId }}
action: 'add-task-asana-project'
- name: Update PR description with Asana task
if: ${{ steps.create-task.outputs.duplicate == 'false' }}
uses: duckduckgo/[email protected]
with:
github-pat: ${{ secrets.GT_DAXMOBILE }}
github-pr: ${{ steps.create-pr.outputs.pull-request-number }}
github-repository: 'android'
github-org: 'duckduckgo'
asana-project: ${{ vars.GH_ANDROID_RELEASE_BOARD_PROJECT_ID }}
asana-task-id: ${{ steps.create-task.outputs.taskId }}
action: 'add-task-pr-description'
- name: Create Asana task when workflow failed
if: ${{ failure() }}
uses: duckduckgo/[email protected]
with:
asana-pat: ${{ secrets.ASANA_ACCESS_TOKEN }}
asana-project: ${{ vars.GH_ANDROID_APP_PROJECT_ID }}
asana-section: ${{ vars.GH_ANDROID_APP_INCOMING_SECTION_ID }}
asana-task-name: GH Workflow Failure - Update content scope scripts
asana-task-description: The update content scope scripts tests workflow has failed. See https://github.com/duckduckgo/Android/actions/runs/${{ github.run_id }}
action: 'create-asana-task'