Skip to content

test windows and macos only #13

test windows and macos only

test windows and macos only #13

Workflow file for this run

name: Propagate Autoconsent To DDG Apps
on:
release:
types: [ created ]
push:
branches:
- 'release-automation'
env:
VERSION1: ${{ github.event.release.tag_name }}
VERSION: 'v10.2.0'
RELEASE_URL: 'https://github.com/duckduckgo/autoconsent/releases/tag/v10.2.0'
RELEASE_URL1: ${{ github.event.release.html_url }}
RELEASE_NOTES: 'Some release notes here.'
RELEASE_NOTES1: ${{ github.event.release.body }}
PR_TITLE: '[TESTING] Update autoconsent to v10.2.0'
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:
if: false
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@${{ env.VERSION }}
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.VERSION }}
branch: update-autoconsent-${{ env.VERSION }}
title: ${{ env.PR_TITLE }}
body: "${{ env.PR_BODY_ANDROID }}"
token: ${{ secrets.DAX_WEB_AUTOFILL_AUTOMATION }}
# ------------------------------------------------------------------------------
# Create PR with updated autoconsent on iOS
# ------------------------------------------------------------------------------
update_ios:
if: false
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 iOS
uses: actions/checkout@v3
with:
repository: duckduckgo/iOS
path: ios/
token: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/setup-node@v3
with:
node-version: current
- name: Update iOS autoconsent reference
run: |
cd ios
npm install @duckduckgo/autoconsent@${{ env.VERSION }}
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.VERSION }}
branch: update-autoconsent-${{ env.VERSION }}
title: ${{ env.PR_TITLE }}
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
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.GITHUB_TOKEN }}
- uses: actions/setup-node@v3
with:
node-version: current
- name: Update macOS autoconsent reference
run: |
cd macos
npm install @duckduckgo/autoconsent@${{ env.VERSION }}
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.VERSION }}
branch: update-autoconsent-${{ env.VERSION }}
title: ${{ env.PR_TITLE }}
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
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.GITHUB_TOKEN }}
- 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.VERSION }}
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.VERSION }}
branch: update-autoconsent-${{ env.VERSION }}
title: ${{ env.PR_TITLE }}
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