-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
cb728a5
commit d666664
Showing
4 changed files
with
344 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
name: 'publish build to d2-ci' | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
tags: | ||
- '*' | ||
|
||
env: | ||
GIT_AUTHOR_NAME: '@dhis2-bot' | ||
GIT_AUTHOR_EMAIL: '[email protected]' | ||
GIT_COMMITTER_NAME: '@dhis2-bot' | ||
GIT_COMMITTER_EMAIL: '[email protected]' | ||
GH_TOKEN: ${{secrets.DHIS2_BOT_GITHUB_TOKEN}} | ||
CI: true | ||
|
||
jobs: | ||
publish-to-d2-ci: | ||
if: | | ||
${{ !github.event.push.repository.fork }} && | ||
${{ github.actor == 'dhis2-bot' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/')) }} | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Print GitHub event context | ||
run: echo "$GITHUB_EVENT" | jq '.' | ||
env: | ||
GITHUB_EVENT: ${{ toJson(github.event) }} | ||
|
||
- name: Print GitHub ref | ||
run: echo "GITHUB_REF is $GITHUB_REF" | ||
|
||
- uses: actions/checkout@v3 | ||
|
||
- uses: actions/setup-node@v3 | ||
with: | ||
node-version: 18.x | ||
|
||
- name: Install | ||
run: yarn install --frozen-lockfile | ||
|
||
- name: Build | ||
run: yarn d2-app-scripts build | ||
|
||
- name: Copy build to d2-ci | ||
uses: dhis2/deploy-build@master | ||
with: | ||
build-dir: build/app | ||
github-token: ${{ secrets.DHIS2_BOT_GITHUB_TOKEN }} | ||
|
||
report-deploy-failure: | ||
runs-on: ubuntu-latest | ||
needs: publish-to-d2-ci | ||
if: ${{ failure() && !cancelled() }} | ||
steps: | ||
- name: Send failure message to analytics-internal-bot slack channel | ||
id: slack_publish_failure | ||
uses: slackapi/[email protected] | ||
with: | ||
channel-id: ${{ secrets.SLACK_CHANNEL_ID }} | ||
payload: | | ||
{ | ||
"text": ":small_red_triangle_down: :data-visualizer-app: Data Visualizer failed to deploy to d2-ci", | ||
} | ||
env: | ||
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,137 @@ | ||
name: 'release app' | ||
|
||
on: | ||
push: | ||
branches: | ||
- 'master' | ||
|
||
env: | ||
GIT_AUTHOR_NAME: '@dhis2-bot' | ||
GIT_AUTHOR_EMAIL: '[email protected]' | ||
GIT_COMMITTER_NAME: '@dhis2-bot' | ||
GIT_COMMITTER_EMAIL: '[email protected]' | ||
GH_TOKEN: ${{secrets.DHIS2_BOT_GITHUB_TOKEN}} | ||
D2_APP_HUB_TOKEN: ${{secrets.DHIS2_BOT_APPHUB_TOKEN}} | ||
CI: true | ||
|
||
jobs: | ||
release: | ||
runs-on: ubuntu-latest | ||
if: > | ||
${{ !github.event.push.repository.fork && | ||
github.actor != 'dependabot[bot]' && | ||
!contains(github.event.head_commit.message, '[skip ci]') && | ||
!contains(github.event.head_commit.message, '[skip release]') && | ||
!startsWith(github.event.head_commit.message, 'chore') }} | ||
steps: | ||
- uses: actions/checkout@v3 | ||
with: | ||
token: ${{ secrets.DHIS2_BOT_GITHUB_TOKEN }} | ||
|
||
- uses: actions/setup-node@v3 | ||
with: | ||
node-version: 18.x | ||
|
||
- name: Install | ||
run: yarn install --frozen-lockfile | ||
|
||
# This step will push a new commit to master with [skip release] in the commit message | ||
- name: Run Semantic Release | ||
run: npx semantic-release | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.DHIS2_BOT_GITHUB_TOKEN }} | ||
|
||
- name: Publish to AppHub | ||
run: yarn run d2-app-scripts publish | ||
|
||
report-release-result: | ||
runs-on: ubuntu-latest | ||
needs: release | ||
if: > | ||
${{ !github.event.push.repository.fork && | ||
github.actor != 'dependabot[bot]' && | ||
!contains(github.event.head_commit.message, '[skip ci]') && | ||
!contains(github.event.head_commit.message, '[skip release]') }} | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
with: | ||
ref: master | ||
fetch-depth: 0 | ||
|
||
- name: Extract version | ||
if: success() | ||
id: extract_version | ||
uses: Saionaro/[email protected] | ||
|
||
- name: Send success message to analytics-internal-bot slack channel | ||
if: success() | ||
id: slack_success | ||
uses: slackapi/[email protected] | ||
with: | ||
channel-id: ${{ secrets.SLACK_CHANNEL_ID }} | ||
payload: | | ||
{ | ||
"text": "Maps app release ${{ steps.extract_version.outputs.version }} succeeded", | ||
"blocks": [ | ||
{ | ||
"type": "header", | ||
"text": { | ||
"type": "plain_text", | ||
"text": ":large_green_circle: :data-visualizer-app: Data Visualizer version ${{ steps.extract_version.outputs.version }} released :tada:", | ||
"emoji": true | ||
} | ||
}, | ||
{ | ||
"type": "divider" | ||
}, | ||
{ | ||
"type": "section", | ||
"text": { | ||
"type": "mrkdwn", | ||
"text": "*Release Notes*" | ||
} | ||
}, | ||
{ | ||
"type": "section", | ||
"text": { | ||
"type": "mrkdwn", | ||
"text": ${{ toJSON(github.event.head_commit.message) }} | ||
} | ||
}, | ||
{ | ||
"type": "divider" | ||
}, | ||
{ | ||
"type": "section", | ||
"text": { | ||
"type": "mrkdwn", | ||
"text": "Link to <https://github.com/dhis2/data-visualizer-app/actions/workflows/dhis2-verify-app.yml?query=branch%3Amaster+is%3Asuccess|build>" | ||
} | ||
} | ||
] | ||
} | ||
env: | ||
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} | ||
|
||
- name: Send failure message to analytics-internal-bot slack channel | ||
if: ${{ failure() && !cancelled() }} | ||
id: slack_failure | ||
uses: slackapi/[email protected] | ||
with: | ||
channel-id: ${{ secrets.SLACK_CHANNEL_ID }} | ||
payload: | | ||
{ | ||
"text": ":small_red_triangle_down: :data-visualizer-app: Maps release <https://github.com/dhis2/data-visualizer-app/actions/workflows/dhis2-verify-app.yml?query=branch%3Amaster+is%3Afailure|failed>", | ||
"blocks": [ | ||
{ | ||
"type": "section", | ||
"text": { | ||
"type": "mrkdwn", | ||
"text": ":small_red_triangle_down: :data-visualizer-app: Data Visualizer release <https://github.com/dhis2/data-visualizer-app/actions/workflows/dhis2-verify-app.yml?query=branch%3Amaster+is%3Afailure|failed>" | ||
} | ||
} | ||
] | ||
} | ||
env: | ||
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
name: 'verify pr' | ||
|
||
on: | ||
pull_request: | ||
types: ['opened', 'labeled', 'reopened', 'synchronize'] | ||
|
||
env: | ||
GIT_AUTHOR_NAME: '@dhis2-bot' | ||
GIT_AUTHOR_EMAIL: '[email protected]' | ||
GIT_COMMITTER_NAME: '@dhis2-bot' | ||
GIT_COMMITTER_EMAIL: '[email protected]' | ||
GH_TOKEN: ${{secrets.DHIS2_BOT_GITHUB_TOKEN}} | ||
CI: true | ||
|
||
jobs: | ||
setup-matrix: | ||
runs-on: ubuntu-latest | ||
outputs: | ||
matrix: ${{ steps.set-matrix.outputs.specs }} | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Generate Test matrix | ||
id: set-matrix | ||
run: echo "::set-output name=specs::$(node cypress/support/generateTestMatrix.js)" | ||
|
||
build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions/setup-node@v3 | ||
with: | ||
node-version: 18.x | ||
|
||
- name: Install | ||
run: yarn install --frozen-lockfile | ||
|
||
- name: Build | ||
run: yarn d2-app-scripts build | ||
|
||
- uses: actions/upload-artifact@v3 | ||
with: | ||
name: app-build | ||
path: | | ||
**/build | ||
!**/node_modules | ||
retention-days: 1 | ||
|
||
lint: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions/setup-node@v3 | ||
with: | ||
node-version: 18.x | ||
|
||
- name: Install | ||
run: yarn install --frozen-lockfile | ||
|
||
- name: Generate translations | ||
run: yarn d2-app-scripts i18n generate | ||
|
||
- name: Lint | ||
run: yarn d2-style check | ||
|
||
test: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions/setup-node@v3 | ||
with: | ||
node-version: 18.x | ||
|
||
- name: Install | ||
run: yarn install --frozen-lockfile | ||
|
||
- name: Generate translations | ||
run: yarn d2-app-scripts i18n generate | ||
|
||
- name: Test | ||
run: yarn d2-app-scripts test | ||
env: | ||
REPORTPORTAL_API_KEY: ${{ secrets.REPORTPORTAL_API_KEY }} | ||
REPORTPORTAL_ENDPOINT: ${{ vars.REPORTPORTAL_ENDPOINT }} | ||
REPORTPORTAL_PROJECT: ${{ vars.REPORTPORTAL_PROJECT }} | ||
CI_BUILD_ID: ${{ github.sha }}-${{ github.workflow }}-${{ github.event_name }} | ||
BRANCH_NAME: ${{ github.head_ref || github.ref_name }} | ||
PR_TITLE: ${{ github.event_name == 'pull_request' && github.event.pull_request.title || format('Direct push to {0}', github.ref_name) }} | ||
|
||
call-workflow-e2e-prod: | ||
if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }} | ||
needs: [build, lint, test, setup-matrix] | ||
uses: dhis2/workflows/.github/workflows/analytics-e2e-tests-prod.yml@master | ||
with: | ||
should_record: ${{ contains(github.event.head_commit.message, '[e2e record]') || contains(join(github.event.pull_request.labels.*.name), 'e2e record')}} | ||
spec-group: ${{ needs.setup-matrix.outputs.matrix }} | ||
secrets: | ||
username: ${{ secrets.CYPRESS_DHIS2_USERNAME }} | ||
password: ${{ secrets.CYPRESS_DHIS2_PASSWORD }} | ||
recordkey: ${{ secrets.CYPRESS_RECORD_KEY }} | ||
reportportal_api_key: ${{ secrets.REPORTPORTAL_API_KEY }} | ||
reportportal_endpoint: ${{ vars.REPORTPORTAL_ENDPOINT }} | ||
reportportal_project: ${{ vars.REPORTPORTAL_PROJECT }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
{ | ||
"branches": [ | ||
"master" | ||
], | ||
"plugins": [ | ||
"@semantic-release/commit-analyzer", | ||
"@semantic-release/release-notes-generator", | ||
"@semantic-release/changelog", | ||
"@semantic-release/npm", | ||
[ | ||
"@semantic-release/exec", | ||
{ | ||
"prepareCmd": "yarn build" | ||
} | ||
], | ||
[ | ||
"@semantic-release/git", | ||
{ | ||
"assets": [ | ||
"CHANGELOG.md", | ||
"package.json" | ||
], | ||
"message": "chore(release): cut ${nextRelease.version} [skip release]\n\n${nextRelease.notes}" | ||
} | ||
], | ||
[ | ||
"@semantic-release/github", | ||
{ | ||
"assets": [ | ||
{ | ||
"path": "build/bundle/*.zip", | ||
"label": "DHIS2 app bundle" | ||
} | ||
] | ||
} | ||
] | ||
] | ||
} |