Skip to content

trigger on release-automation push #1

trigger on release-automation push

trigger on release-automation push #1

Workflow file for this run

name: Propagate Autoconsent To DDG Apps
on:
release:
types: [ created ]
push:
branches:
- 'release-automation'
env:
VERSION: ${{ github.event.release.tag_name }}
RELEASE_URL: ${{ github.event.release.html_url }}
RELEASE_NOTES: ${{ github.event.release.body }}
jobs:
# ------------------------------------------------------------------------------
# Create initial Asana subtasks
# ------------------------------------------------------------------------------
create_asana_tasks:
runs-on: ubuntu-latest
outputs:
asana-output: ${{ steps.create-asana-tasks.outputs.ASANA_OUTPUT }}
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
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.GITHUB_TOKEN }}
- uses: actions/setup-node@v3
with:
node-version: current
- name: Update Android autoconsent reference
run: |
cd android
npm install @duckduckgo/autoconsent@${{ github.event.release.tag_name }}
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 ${{ github.event.release.tag_name }}
branch: update-autoconsent-${{ github.event.release.tag_name }}
title: Update autoconsent to ${{ github.event.release.tag_name }}
body: "${{ env.PR_BODY_ANDROID }}"
token: ${{ secrets.DAXMOBILE_AUTOFILL_AUTOMATION }}
# # ------------------------------------------------------------------------------
# # Create PR with updated BrowserServicesKit on iOS
# # ------------------------------------------------------------------------------
# update_ios:
# runs-on: ubuntu-20.04
# outputs:
# pull-request-url: ${{ steps.create-pr.outputs.pull-request-url }}
# needs: [create_asana_tasks, update_bsk]
# steps:
# # --- Setup ---
# - uses: actions/checkout@v3
# with:
# path: autofill/
# - uses: ./autofill/.github/actions/setup-release-scripts
# # --- Action ---
# - name: Checkout iOS
# uses: actions/checkout@v3
# with:
# repository: duckduckgo/iOS
# path: ios/
# token: ${{ secrets.DAXMOBILE_AUTOFILL_AUTOMATION }}
# - name: Update iOS autofill reference
# env:
# BSK_SHA: ${{ needs.update_bsk.outputs.pull-request-head-sha }}
# run: |
# node ./autofill/ci/update-apple-device-repo.js 'ios'
# - name: Create iOS PR Body
# env:
# ASANA_OUTPUT: ${{ needs.create_asana_tasks.outputs.asana-output }}
# BSK_PR_URL: ${{ needs.update_bsk.outputs.pull-request-url }}
# run: |
# TEMPLATE="$(node ./autofill/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: DuckDuckGo.xcodeproj/project.pbxproj
# commit-message: Update BSK with autofill ${{ github.event.release.tag_name }}
# branch: update-bsk-with-autofill-${{ github.event.release.tag_name }}
# title: Update BSK with autofill ${{ github.event.release.tag_name }}
# body: ${{ env.PR_BODY_IOS }}
# token: ${{ secrets.DAXMOBILE_AUTOFILL_AUTOMATION }}
# # ------------------------------------------------------------------------------
# # Create PR with updated BrowserServicesKit on macOS
# # ------------------------------------------------------------------------------
# update_macos:
# runs-on: ubuntu-20.04
# outputs:
# pull-request-url: ${{ steps.create-pr.outputs.pull-request-url }}
# needs: [create_asana_tasks, update_bsk]
# steps:
# # --- Setup ---
# - uses: actions/checkout@v3
# with:
# path: autofill/
# - uses: ./autofill/.github/actions/setup-release-scripts
# # --- Action ---
# - name: Checkout macOS
# uses: actions/checkout@v3
# with:
# repository: duckduckgo/macos-browser
# path: macos/
# token: ${{ secrets.DAXMOBILE_AUTOFILL_AUTOMATION }}
# - name: Update macOS autofill reference
# env:
# BSK_SHA: ${{ needs.update_bsk.outputs.pull-request-head-sha }}
# run: |
# node ./autofill/ci/update-apple-device-repo.js 'macos'
# - name: Create macOS PR Body
# env:
# ASANA_OUTPUT: ${{ needs.create_asana_tasks.outputs.asana-output }}
# BSK_PR_URL: ${{ needs.update_bsk.outputs.pull-request-url }}
# run: |
# TEMPLATE="$(node ./autofill/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: DuckDuckGo.xcodeproj/project.pbxproj
# commit-message: Update BSK with autofill ${{ github.event.release.tag_name }}
# branch: update-bsk-with-autofill-${{ github.event.release.tag_name }}
# title: Update BSK with autofill ${{ github.event.release.tag_name }}
# body: ${{ env.PR_BODY_MACOS }}
# token: ${{ secrets.DAXMOBILE_AUTOFILL_AUTOMATION }}
# # ------------------------------------------------------------------------------
# # Create PR with updated autofill on Windows
# # ------------------------------------------------------------------------------
# update_windows:
# runs-on: ubuntu-20.04
# outputs:
# pull-request-url: ${{ steps.create-pr.outputs.pull-request-url }}
# needs: create_asana_tasks
# steps:
# # --- Setup ---
# - uses: actions/checkout@v3
# with:
# path: autofill/
# - uses: ./autofill/.github/actions/setup-release-scripts
# # --- Action ---
# - name: Checkout Windows
# uses: actions/checkout@v3
# with:
# repository: duckduckgo/windows-browser
# path: windows/
# submodules: true
# token: ${{ secrets.DAXMOBILE_AUTOFILL_AUTOMATION }}
# - name: Update Windows autofill reference
# run: |
# cd windows/submodules/duckduckgo-autofill
# git fetch --tags
# git checkout ${{ github.event.release.tag_name }}
# cd ../../../
# - name: Create Windows PR Body
# env:
# ASANA_OUTPUT: ${{ needs.create_asana_tasks.outputs.asana-output }}
# run: |
# TEMPLATE="$(node ./autofill/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: |
# submodules/duckduckgo-autofill
# commit-message: Update autofill to ${{ github.event.release.tag_name }}
# branch: update-autofill-${{ github.event.release.tag_name }}
# title: Update autofill to ${{ github.event.release.tag_name }}
# body: "${{ env.PR_BODY_WINDOWS }}"
# token: ${{ secrets.DAXMOBILE_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 }}
# BSK_PR_URL: ${{ needs.update_bsk.outputs.pull-request-url }}
# 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