Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 10 additions & 79 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,19 @@ on:
- '**.md'
- '.github/**'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
code_formatting:
name: Code Formatting
runs-on: ubuntu-24.04
ci:
name: CI
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # required due to setting Spotless ratchetFrom
submodules: recursive
token: ${{ secrets.GT_DAXMOBILE }}
ref: ${{ github.event.inputs.ref }}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
property "ref" is not defined in object type {} [expression]


- name: Set up JDK version
uses: actions/setup-java@v4
Expand All @@ -39,27 +37,13 @@ jobs:
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3

- name: Run Code Formatting Checks
run: ./gradlew spotlessCheck

unit_tests:
name: Unit tests
runs-on: android-large-runner

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive

- name: Set up JDK version
uses: actions/setup-java@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
java-version-file: .github/.java-version
distribution: 'adopt'
go-version: '1.18.3'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
- name: Run Code Formatting Checks
run: ./gradlew spotlessCheck

- name: JVM tests
run: ./gradlew jvm_tests
Expand All @@ -75,30 +59,6 @@ jobs:
name: unit-tests-report
path: unit-tests-report.zip

lint:
name: Lint
runs-on: android-large-runner

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive

- name: Set up JDK version
uses: actions/setup-java@v4
with:
java-version-file: .github/.java-version
distribution: 'adopt'

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.18.3'

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3

- name: Lint
run: ./gradlew lint

Expand All @@ -113,40 +73,11 @@ jobs:
name: lint-report
path: lint-report.zip

android_tests:
runs-on: android-large-runner
name: Android CI tests

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive

- name: Setup jq
uses: dcarbone/install-jq-action@v1.0.1
with:
force: true

- name: Set up JDK version
uses: actions/setup-java@v4
with:
java-version-file: .github/.java-version
distribution: 'adopt'

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.18.3'

- name: Decode secret
env:
FLANK: ${{ secrets.FLANK }}
run: echo "$FLANK" > flank.json

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3

- name: Build
run: ./gradlew androidTestsBuild

Expand Down
53 changes: 53 additions & 0 deletions .github/workflows/notify_mattermost.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Mattermost - Send Message

on:
workflow_dispatch:
inputs:
mattermost-message:
description: 'Message to Send to Mattermost'
required: true
type: string
mattermost-channel-name:
description: 'Channel to Send the message to'
required: true
type: string
workflow_call:
inputs:
mattermost-message:
description: 'Message to Send to Mattermost'
required: true
type: string
mattermost-channel-name:
description: 'Channel to Send the message to'
required: true
type: string
secrets:
MM_AUTH_TOKEN:
required: true
MM_TEAM_ID:
required: true

env:
ASANA_PAT: ${{ secrets.ASANA_ACCESS_TOKEN }}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
property "asana_access_token" is not defined in object type {actions_runner_debug: string; actions_step_debug: string; github_token: string; mm_auth_token: string; mm_team_id: string} [expression]

emoji_start: ":flight_departure:" # 🛫
emoji_info: ":information_source:" # ℹ️

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
notify_mattermost:
name: Send Message to Mattermost
runs-on: macos-latest

steps:
- name: Notify Mattermost of Release starting
id: send-mm-release-starting
uses: duckduckgo/native-github-asana-sync@v2.0
with:
mattermost-token: ${{ secrets.MM_AUTH_TOKEN }}
mattermost-team-id: ${{ secrets.MM_TEAM_ID }}
mattermost-channel-name: ${{ github.event.inputs.mattermost-channel-name }}
mattermost-message: ${{ github.event.inputs.mattermost-message }}
action: 'send-mattermost-message'
15 changes: 15 additions & 0 deletions .github/workflows/release_create_tag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,21 @@ on:
description: 'App Version for Release'
required: true
default: 'PLACEHOLDER'
workflow_call:
inputs:
app-version:
description: 'App Version for Release'
required: true
type: string
secrets:
ASANA_ACCESS_TOKEN:
required: true
GT_DAXMOBILE:
required: true
MM_AUTH_TOKEN:
required: true
MM_TEAM_ID:
required: true

env:
ASANA_PAT: ${{ secrets.ASANA_ACCESS_TOKEN }}
Expand Down
17 changes: 17 additions & 0 deletions .github/workflows/release_create_task.yml
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [actionlint] reported by reviewdog 🐶
shellcheck reported issue in this script: SC2086:info:9:24: Double quote to prevent globbing and word splitting [shellcheck]

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [actionlint] reported by reviewdog 🐶
shellcheck reported issue in this script: SC2086:info:12:38: Double quote to prevent globbing and word splitting [shellcheck]

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [actionlint] reported by reviewdog 🐶
shellcheck reported issue in this script: SC2086:info:16:22: Double quote to prevent globbing and word splitting [shellcheck]

Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,23 @@ on:
description: 'App Version for Release'
required: true
default: 'PLACEHOLDER'
workflow_call:
inputs:
app-version:
description: 'App Version for Release'
required: true
type: string
outputs:
asana-task-url:
description: "The URL of the created Asana task"
value: ${{ jobs.create_release_task.outputs.asana_task_url }}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
property "asana_task_url" is not defined in object type {} [expression]

secrets:
ASANA_ACCESS_TOKEN:
required: true
MM_AUTH_TOKEN:
required: true
MM_TEAM_ID:
required: true

env:
ASANA_PAT: ${{ secrets.ASANA_ACCESS_TOKEN }}
Expand Down
69 changes: 69 additions & 0 deletions .github/workflows/release_full_process.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Release - Full Release Process

on:
workflow_dispatch:
inputs:
app-version:
description: 'App Version for Release'
required: true
default: 'PLACEHOLDER'

env:
emoji_start: ":flight_departure:" # 🛫
emoji_info: ":information_source:" # ℹ️

concurrency:
group: ${{ github.workflow }}-${{ github.event.inputs.app-version }}
cancel-in-progress: true

jobs:
notify_mattermost_start:
name: 'Step 1: Notify Mattermost of Release start'
uses: ./.github/workflows/notify_mattermost.yml
with:
mattermost-message: ${{env.emoji_start}} Starting release process for version ${{ github.event.inputs.app-version }}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
context "env" is not allowed here. available contexts are "github", "inputs", "matrix", "needs", "strategy", "vars". see https://docs.github.com/en/actions/learn-github-actions/contexts#context-availability for more details [expression]

mattermost-channel-name: ${{ vars.MM_RELEASE_NOTIFY_CHANNEL }}
secrets: inherit

create_task:
name: 'Step 2: Create Asana Task'
uses: ./.github/workflows/release_create_task.yml
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
secret "ASANA_ACCESS_TOKEN" is required by "./.github/workflows/release_create_task.yml" reusable workflow [workflow-call]

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
secret "MM_AUTH_TOKEN" is required by "./.github/workflows/release_create_task.yml" reusable workflow [workflow-call]

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
secret "MM_TEAM_ID" is required by "./.github/workflows/release_create_task.yml" reusable workflow [workflow-call]

needs: notify_mattermost_start
with:
app-version: ${{ github.event.inputs.app-version }}

run_release_tests:
name: 'Step 3: Run Release Tests'
needs: create_task
uses: ./.github/workflows/release_tests.yml
with:
app-version: ${{ github.event.inputs.app-version }}
test-tag: 'releaseTest'
secrets: inherit

upload_play_store:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
job "upload_play_store" needs job "run_tests" which does not exist in this workflow [job-needs]

name: 'Step 4: Upload to Play Store'
needs: run_tests
uses: ./.github/workflows/release_upload_play_store.yml
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
input "ref" is required by "./.github/workflows/release_upload_play_store.yml" reusable workflow [workflow-call]

with:
app-version: ${{ github.event.inputs.app-version }}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
input "app-version" is not defined in "./.github/workflows/release_upload_play_store.yml" reusable workflow. defined input is "ref" [workflow-call]

asana-task-url: ${{ needs.create_task.outputs.asana-task-url }}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
input "asana-task-url" is not defined in "./.github/workflows/release_upload_play_store.yml" reusable workflow. defined input is "ref" [workflow-call]

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
property "create_task" is not defined in object type {} [expression]

secrets: inherit

upload_internal:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
job "upload_internal" needs job "run_tests" which does not exist in this workflow [job-needs]

name: 'Step 5: Upload Internal Build'
needs: run_tests
uses: ./.github/workflows/release_upload_internal.yml
with:
app-version: ${{ github.event.inputs.app-version }}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
input "app-version" is not defined in "./.github/workflows/release_upload_internal.yml" reusable workflow. no input is defined [workflow-call]

asana-task-url: ${{ needs.create_task.outputs.asana-task-url }}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
input "asana-task-url" is not defined in "./.github/workflows/release_upload_internal.yml" reusable workflow. no input is defined [workflow-call]

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
property "create_task" is not defined in object type {} [expression]

secrets: inherit

notify_mattermost_finish:
name: 'Step 1: Notify Mattermost of Release completed'
uses: ./.github/workflows/notify_mattermost.yml
needs: upload_play_store
with:
mattermost-message: ${{env.emoji_end}} Release ${{ github.event.inputs.app-version }} completed successfully and is now in review.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
context "env" is not allowed here. available contexts are "github", "inputs", "matrix", "needs", "strategy", "vars". see https://docs.github.com/en/actions/learn-github-actions/contexts#context-availability for more details [expression]

mattermost-channel-name: ${{ vars.MM_RELEASE_NOTIFY_CHANNEL }}
secrets: inherit
26 changes: 26 additions & 0 deletions .github/workflows/release_tests.yml
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [actionlint] reported by reviewdog 🐶
shellcheck reported issue in this script: SC2086:info:45:45: Double quote to prevent globbing and word splitting [shellcheck]

Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,32 @@ on:
required: true
default: 'releaseTest'

workflow_call:
inputs:
app-version:
description: 'App Version for Release'
required: true
type: string
test-tag:
description: 'Maestro Tests tag to include'
required: true
default: 'releaseTest'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
input "test-tag" of workflow_call event has the default value "releaseTest", but it is also required. if an input is marked as required, its default value will never be used [events]

type: string
secrets:
ASANA_ACCESS_TOKEN:
required: false
FAKE_RELEASE_PROPERTIES:
required: true
FAKE_RELEASE_KEY:
required: true
MM_AUTH_TOKEN:
required: true
MM_TEAM_ID:
required: true
ROBIN_API_KEY:
required: true


env:
ASANA_PAT: ${{ secrets.ASANA_ACCESS_TOKEN }}
emoji_info: ":information_source:" # ℹ️
Expand Down
18 changes: 17 additions & 1 deletion .github/workflows/release_upload_internal.yml
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [actionlint] reported by reviewdog 🐶
shellcheck reported issue in this script: SC2086:info:3:30: Double quote to prevent globbing and word splitting [shellcheck]

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
input "github_token" is not defined in action "Check for code changes after a specific tag" defined at "./.github/actions/check-for-changes-since-tag". available inputs are "tag" [action]

github_token: ${{ secrets.GT_DAXMOBILE }}

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [actionlint] reported by reviewdog 🐶
shellcheck reported issue in this script: SC2086:info:2:73: Double quote to prevent globbing and word splitting [shellcheck]

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
property "upload_release_properties" is not defined in object type {actions_runner_debug: string; actions_step_debug: string; asana_access_token: string; github_token: string; gt_daxmobile: string; malicious_site_protection_auth_token: string; mm_auth_token: string; mm_team_id: string; upload_firebase_credentials: string; upload_play_credentials: string} [expression]

secret: ${{ secrets.UPLOAD_RELEASE_PROPERTIES }}

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
property "upload_release_key" is not defined in object type {actions_runner_debug: string; actions_step_debug: string; asana_access_token: string; github_token: string; gt_daxmobile: string; malicious_site_protection_auth_token: string; mm_auth_token: string; mm_team_id: string; upload_firebase_credentials: string; upload_play_credentials: string} [expression]

secret: ${{ secrets.UPLOAD_RELEASE_KEY }}

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
property "netp_debug_server_token" is not defined in object type {actions_runner_debug: string; actions_step_debug: string; asana_access_token: string; github_token: string; gt_daxmobile: string; malicious_site_protection_auth_token: string; mm_auth_token: string; mm_team_id: string; upload_firebase_credentials: string; upload_play_credentials: string} [expression]

NETP_DEBUG_SERVER_TOKEN: ${{ secrets.NETP_DEBUG_SERVER_TOKEN }}

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [actionlint] reported by reviewdog 🐶
shellcheck reported issue in this script: SC2086:info:2:27: Double quote to prevent globbing and word splitting [shellcheck]

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [actionlint] reported by reviewdog 🐶
shellcheck reported issue in this script: SC2086:info:2:31: Double quote to prevent globbing and word splitting [shellcheck]

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [actionlint] reported by reviewdog 🐶
shellcheck reported issue in this script: SC2086:info:1:52: Double quote to prevent globbing and word splitting [shellcheck]

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [actionlint] reported by reviewdog 🐶
shellcheck reported issue in this script: SC2086:info:9:46: Double quote to prevent globbing and word splitting [shellcheck]

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
property "gh_asana_workspace_id" is not defined in object type {actions_runner_debug: string; actions_step_debug: string; asana_access_token: string; github_token: string; gt_daxmobile: string; malicious_site_protection_auth_token: string; mm_auth_token: string; mm_team_id: string; upload_firebase_credentials: string; upload_play_credentials: string} [expression]

Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,24 @@ name: Release to Internal and Firebase
on:
schedule:
- cron: '0 2 * * *' # run at 3 AM UTC
workflow_call:
workflow_dispatch:
workflow_call:
secrets:
ASANA_ACCESS_TOKEN:
required: true
GT_DAXMOBILE:
required: true
UPLOAD_PLAY_CREDENTIALS:
required: true
UPLOAD_FIREBASE_CREDENTIALS:
required: true
MALICIOUS_SITE_PROTECTION_AUTH_TOKEN:
required: true
MM_AUTH_TOKEN:
required: true
MM_TEAM_ID:
required: true


env:
ASANA_PAT: ${{ secrets.ASANA_ACCESS_TOKEN }}
Expand Down
18 changes: 14 additions & 4 deletions .github/workflows/release_upload_play_store.yml
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
property "upload_release_properties" is not defined in object type {actions_runner_debug: string; actions_step_debug: string; asana_access_token: string; github_token: string; gt_daxmobile: string; mm_auth_token: string; mm_team_id: string; upload_play_credentials: string} [expression]

secret: ${{ secrets.UPLOAD_RELEASE_PROPERTIES }}

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
property "upload_release_key" is not defined in object type {actions_runner_debug: string; actions_step_debug: string; asana_access_token: string; github_token: string; gt_daxmobile: string; mm_auth_token: string; mm_team_id: string; upload_play_credentials: string} [expression]

secret: ${{ secrets.UPLOAD_RELEASE_KEY }}

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [actionlint] reported by reviewdog 🐶
property "malicious_site_protection_auth_token" is not defined in object type {actions_runner_debug: string; actions_step_debug: string; asana_access_token: string; github_token: string; gt_daxmobile: string; mm_auth_token: string; mm_team_id: string; upload_play_credentials: string} [expression]

MALICIOUS_SITE_PROTECTION_AUTH_TOKEN: ${{ secrets.MALICIOUS_SITE_PROTECTION_AUTH_TOKEN }}

Original file line number Diff line number Diff line change
@@ -1,17 +1,27 @@
name: Production Release to Play Store and Github

on:
workflow_call:
workflow_dispatch:
inputs:
ref:
description: 'Ref to build APK from (branch, tag, commit)'
type: string
required: true

workflow_dispatch:
workflow_call:
inputs:
ref:
description: 'Ref to build APK from (branch, tag, commit)'
type: string
required: true
secrets:
ASANA_ACCESS_TOKEN:
required: true
GT_DAXMOBILE:
required: true
UPLOAD_PLAY_CREDENTIALS:
required: true
MM_AUTH_TOKEN:
required: true
MM_TEAM_ID:
required: true

env:
Expand Down
Loading
Loading