Skip to content

Propagate Autoconsent To DDG Apps #27

Propagate Autoconsent To DDG Apps

Propagate Autoconsent To DDG Apps #27

Workflow file for this run

name: Propagate Autoconsent To DDG Apps
on:
workflow_dispatch:
inputs:
tag_name:
description: 'The tag of the release'
required: true
default: 'latest'
env:
TAG: ${{ inputs.tag_name }}
jobs:
# ------------------------------------------------------------------------------
# Retrieve the corresponding Release data from the GitHub API
# ------------------------------------------------------------------------------
get_release_info:
runs-on: ubuntu-latest
outputs:
release-url: ${{ steps.get-release-url.outputs.result }}
release-notes: ${{ steps.get-release-notes.outputs.result }}
steps:
- name: Get Release URL
id: get-release-url
uses: actions/github-script@v4
with:
result-encoding: string
script: |
const { data } = await github.repos.getReleaseByTag({
owner: context.repo.owner,
repo: context.repo.repo,
tag: process.env.TAG
});
return data.html_url;
- name: Get Release Notes
id: get-release-notes
uses: actions/github-script@v4
with:
result-encoding: string
script: |
const { data } = await github.repos.getReleaseByTag({
owner: context.repo.owner,
repo: context.repo.repo,
tag: process.env.TAG
});
return data.body;
create_asana_tasks:
needs: get_release_info
runs-on: ubuntu-latest
env:
RELEASE_URL: ${{ needs.get_release_info.outputs.release-url }}
RELEASE_NOTES: ${{ needs.get_release_info.outputs.release-notes }}
steps:
- name: test
id: create-asana-tasks
run: |
echo "tag:"
echo ${TAG}
echo "release_url:"
echo ${RELEASE_URL}
echo "release_notes:"
echo ${RELEASE_NOTES}
# ------------------------------------------------------------------------------
# Create initial Asana subtasks
# ------------------------------------------------------------------------------
# create_asana_tasks:
# needs: get_release_info
# runs-on: ubuntu-latest
# outputs:
# asana-output: ${{ steps.create-asana-tasks.outputs.ASANA_OUTPUT }}
# env:
# RELEASE_URL: ${{ needs.get_release_info.outputs.release-url }}
# RELEASE_NOTES: ${{ needs.get_release_info.outputs.release-notes }}
# steps:
# # --- Setup ---
# - uses: actions/checkout@v3
# with:
# path: autoconsent/
# - uses: ./autoconsent/.github/actions/setup-release-scripts
# # --- Effect ---
# - name: Create Asana Tasks
# id: create-asana-tasks
# env:
# ASANA_ACCESS_TOKEN: ${{ secrets.ASANA_ACCESS_TOKEN }}
# run: |
# JSON_STRING="$(node ./autoconsent/ci/asana-create-tasks.js)"
# echo "ASANA_OUTPUT=$JSON_STRING" >> $GITHUB_OUTPUT
# ------------------------------------------------------------------------------
# Create PR with updated autoconsent on Android
# ------------------------------------------------------------------------------
# update_android:
# runs-on: ubuntu-latest
# outputs:
# pull-request-url: ${{ steps.create-pr.outputs.pull-request-url }}
# needs:
# - create_asana_tasks
# - get_release_info
# env:
# RELEASE_URL: ${{ needs.get_release_info.outputs.release-url }}
# RELEASE_NOTES: ${{ needs.get_release_info.outputs.release-notes }}
# steps:
# # --- Setup ---
# - uses: actions/checkout@v3
# with:
# path: autoconsent/
# - uses: ./autoconsent/.github/actions/setup-release-scripts
# # --- Action ---
# - name: Checkout Android
# uses: actions/checkout@v3
# with:
# repository: duckduckgo/android
# path: android/
# token: ${{ secrets.DAX_WEB_AUTOFILL_AUTOMATION }}
# - uses: actions/setup-node@v3
# with:
# node-version: current
# - name: Update Android autoconsent reference
# run: |
# cd android
# npm install @duckduckgo/autoconsent@${{ env.TAG }}
# npm run rebuild-autoconsent
# cd ..
# - name: Create Android PR Body
# env:
# ASANA_OUTPUT: ${{ needs.create_asana_tasks.outputs.asana-output }}
# run: |
# TEMPLATE="$(node ./autoconsent/ci/create-pr-template.js android)"
# # Creates a randomised delimiter. See https://app.asana.com/0/1199892415909552/1203243297643584/f
# DELIMITER=$(echo $RANDOM | md5sum | head -c 20;)
# echo "PR_BODY_ANDROID<<$DELIMITER" >> $GITHUB_ENV
# echo "$TEMPLATE" >> $GITHUB_ENV
# echo "$DELIMITER" >> $GITHUB_ENV
# # --- Effect ---
# - name: Create PR for Android
# uses: peter-evans/create-pull-request@88bf0de51c7487d91e1abbb4899332e602c58bbf
# id: create-pr
# with:
# path: android/
# add-paths: |
# package.json
# package-lock.json
# autoconsent/
# commit-message: Update autoconsent to ${{ env.TAG }}
# branch: update-autoconsent-${{ env.TAG }}
# title: Update autoconsent to ${{ env.TAG }}
# body: "${{ env.PR_BODY_ANDROID }}"
# token: ${{ secrets.DAX_WEB_AUTOFILL_AUTOMATION }}
# # ------------------------------------------------------------------------------
# # Create PR with updated autoconsent on iOS
# # ------------------------------------------------------------------------------
# update_ios:
# runs-on: ubuntu-latest
# outputs:
# pull-request-url: ${{ steps.create-pr.outputs.pull-request-url }}
# needs:
# - create_asana_tasks
# - get_release_info
# env:
# RELEASE_URL: ${{ needs.get_release_info.outputs.release-url }}
# RELEASE_NOTES: ${{ needs.get_release_info.outputs.release-notes }}
# steps:
# # --- Setup ---
# - uses: actions/checkout@v3
# with:
# path: autoconsent/
# - uses: ./autoconsent/.github/actions/setup-release-scripts
# # --- Action ---
# - name: Checkout iOS
# uses: actions/checkout@v3
# with:
# repository: duckduckgo/iOS
# path: ios/
# token: ${{ secrets.DAX_WEB_AUTOFILL_AUTOMATION }}
# - uses: actions/setup-node@v3
# with:
# node-version: current
# - name: Update iOS autoconsent reference
# run: |
# cd ios
# npm install @duckduckgo/autoconsent@${{ env.TAG }}
# npm run rebuild-autoconsent
# cd ..
# - name: Create iOS PR Body
# env:
# ASANA_OUTPUT: ${{ needs.create_asana_tasks.outputs.asana-output }}
# run: |
# TEMPLATE="$(node ./autoconsent/ci/create-pr-template.js ios)"
# # Creates a randomised delimiter. See https://app.asana.com/0/1199892415909552/1203243297643584/f
# DELIMITER=$(echo $RANDOM | md5sum | head -c 20;)
# echo "PR_BODY_IOS<<$DELIMITER" >> $GITHUB_ENV
# echo "$TEMPLATE" >> $GITHUB_ENV
# echo "$DELIMITER" >> $GITHUB_ENV
# # --- Effect ---
# - name: Create PR for iOS
# uses: peter-evans/create-pull-request@88bf0de51c7487d91e1abbb4899332e602c58bbf
# id: create-pr
# with:
# path: ios/
# add-paths: |
# package.json
# package-lock.json
# DuckDuckGo/Autoconsent/
# commit-message: Update autoconsent to ${{ env.TAG }}
# branch: update-autoconsent-${{ env.TAG }}
# title: Update autoconsent to ${{ env.TAG }}
# body: "${{ env.PR_BODY_IOS }}"
# token: ${{ secrets.DAX_WEB_AUTOFILL_AUTOMATION }}
# # ------------------------------------------------------------------------------
# # Create PR with updated autoconsent on macOS
# # ------------------------------------------------------------------------------
# update_macos:
# runs-on: ubuntu-latest
# outputs:
# pull-request-url: ${{ steps.create-pr.outputs.pull-request-url }}
# needs:
# - create_asana_tasks
# - get_release_info
# env:
# RELEASE_URL: ${{ needs.get_release_info.outputs.release-url }}
# RELEASE_NOTES: ${{ needs.get_release_info.outputs.release-notes }}
# steps:
# # --- Setup ---
# - uses: actions/checkout@v3
# with:
# path: autoconsent/
# - uses: ./autoconsent/.github/actions/setup-release-scripts
# # --- Action ---
# - name: Checkout macOS
# uses: actions/checkout@v3
# with:
# repository: duckduckgo/macos-browser
# path: macos/
# token: ${{ secrets.DAX_WEB_AUTOFILL_AUTOMATION }}
# - uses: actions/setup-node@v3
# with:
# node-version: current
# - name: Update macOS autoconsent reference
# run: |
# cd macos
# npm install @duckduckgo/autoconsent@${{ env.TAG }}
# npm run rebuild-autoconsent
# cd ..
# - name: Create macOS PR Body
# env:
# ASANA_OUTPUT: ${{ needs.create_asana_tasks.outputs.asana-output }}
# run: |
# TEMPLATE="$(node ./autoconsent/ci/create-pr-template.js macos)"
# # Creates a randomised delimiter. See https://app.asana.com/0/1199892415909552/1203243297643584/f
# DELIMITER=$(echo $RANDOM | md5sum | head -c 20;)
# echo "PR_BODY_MACOS<<$DELIMITER" >> $GITHUB_ENV
# echo "$TEMPLATE" >> $GITHUB_ENV
# echo "$DELIMITER" >> $GITHUB_ENV
# # --- Effect ---
# - name: Create PR for macOS
# uses: peter-evans/create-pull-request@88bf0de51c7487d91e1abbb4899332e602c58bbf
# id: create-pr
# with:
# path: macos/
# add-paths: |
# package.json
# package-lock.json
# DuckDuckGo/Autoconsent/
# commit-message: Update autoconsent to ${{ env.TAG }}
# branch: update-autoconsent-${{ env.TAG }}
# title: Update autoconsent to ${{ env.TAG }}
# body: "${{ env.PR_BODY_MACOS }}"
# token: ${{ secrets.DAX_WEB_AUTOFILL_AUTOMATION }}
# # ------------------------------------------------------------------------------
# # Create PR with updated autofill on Windows
# # ------------------------------------------------------------------------------
# update_windows:
# runs-on: ubuntu-latest
# outputs:
# pull-request-url: ${{ steps.create-pr.outputs.pull-request-url }}
# needs:
# - create_asana_tasks
# - get_release_info
# env:
# RELEASE_URL: ${{ needs.get_release_info.outputs.release-url }}
# RELEASE_NOTES: ${{ needs.get_release_info.outputs.release-notes }}
# steps:
# # --- Setup ---
# - uses: actions/checkout@v3
# with:
# path: autoconsent/
# - uses: ./autoconsent/.github/actions/setup-release-scripts
# # --- Action ---
# - name: Checkout Windows
# uses: actions/checkout@v3
# with:
# repository: duckduckgo/windows-browser
# path: windows/
# token: ${{ secrets.DAX_WEB_AUTOFILL_AUTOMATION }}
# - uses: actions/setup-node@v3
# with:
# node-version: current
# - name: Update Windows autoconsent reference
# run: |
# cd windows/WindowsBrowser/Application/Autoconsent/External
# npm install @duckduckgo/autoconsent@${{ env.TAG }}
# npm run rebuild-autoconsent
# cd ../../../../../
# - name: Create Windows PR Body
# env:
# ASANA_OUTPUT: ${{ needs.create_asana_tasks.outputs.asana-output }}
# run: |
# TEMPLATE="$(node ./autoconsent/ci/create-pr-template.js windows)"
# # Creates a randomised delimiter. See https://app.asana.com/0/1199892415909552/1203243297643584/f
# DELIMITER=$(echo $RANDOM | md5sum | head -c 20;)
# echo "PR_BODY_WINDOWS<<$DELIMITER" >> $GITHUB_ENV
# echo "$TEMPLATE" >> $GITHUB_ENV
# echo "$DELIMITER" >> $GITHUB_ENV
# # --- Effect ---
# - name: Create PR for Windows
# uses: peter-evans/create-pull-request@88bf0de51c7487d91e1abbb4899332e602c58bbf
# id: create-pr
# with:
# path: windows/
# add-paths: |
# WindowsBrowser/Application/Autoconsent/
# commit-message: Update autoconsent to ${{ env.TAG }}
# branch: update-autoconsent-${{ env.TAG }}
# title: Update autoconsent to ${{ env.TAG }}
# body: "${{ env.PR_BODY_WINDOWS }}"
# token: ${{ secrets.DAX_WEB_AUTOFILL_AUTOMATION }}
# # ------------------------------------------------------------------------------
# # Update Asana subtasks with PR URLs
# # ------------------------------------------------------------------------------
# update_asana_tasks:
# runs-on: ubuntu-latest
# # Always run this final step, even if any of the updates have failed
# # unless the previous jobs were cancelled
# if: ${{ always() && !contains(needs.*.result, 'cancelled') }}
# needs: [create_asana_tasks, update_android, update_ios, update_macos, update_windows]
# steps:
# # --- Setup ---
# - uses: actions/checkout@v3
# with:
# path: autoconsent/
# - uses: ./autoconsent/.github/actions/setup-release-scripts
# # --- Effect ---
# - name: Update Asana tasks
# env:
# ASANA_ACCESS_TOKEN: ${{ secrets.ASANA_ACCESS_TOKEN }}
# ASANA_OUTPUT: ${{ needs.create_asana_tasks.outputs.asana-output }}
# IOS_PR_URL: ${{ needs.update_ios.outputs.pull-request-url }}
# MACOS_PR_URL: ${{ needs.update_macos.outputs.pull-request-url }}
# WINDOWS_PR_URL: ${{ needs.update_windows.outputs.pull-request-url }}
# ANDROID_PR_URL: ${{ needs.update_android.outputs.pull-request-url }}
# run: |
# node ./autoconsent/ci/asana-update-tasks.js
# - name: Ouput workflow summary
# # Show failure message if any of the jobs report failed
# if: ${{ contains(needs.*.result, 'failure') }}
# run: |
# echo "Release process completed but with failures reported." >> $GITHUB_STEP_SUMMARY
# echo "Please review the job output to see which steps require manual intervention." >> $GITHUB_STEP_SUMMARY
# - name: Ouput workflow summary
# # Show success message as long as none of the jobs report failed
# if: ${{ !contains(needs.*.result, 'failure') }}
# run: |
# echo "Release process completed successfully." >> $GITHUB_STEP_SUMMARY
# echo "All PRs and Asana tasks created! :rocket:" >> $GITHUB_STEP_SUMMARY