Skip to content

Commit

Permalink
chore: separate workflows for prs releases and tags
Browse files Browse the repository at this point in the history
  • Loading branch information
jenniferarnesen committed Jul 4, 2024
1 parent 05cfbc2 commit 14127dc
Show file tree
Hide file tree
Showing 3 changed files with 165 additions and 21 deletions.
52 changes: 52 additions & 0 deletions .github/workflows/push-tag-to-d2-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: 'push tag to d2-ci'

on:
push:
branches:

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:
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

release:
runs-on: ubuntu-latest
needs: build
if: ${{ !github.event.push.repository.fork }}
steps:
- name: Download artifact
uses: actions/download-artifact@v3
with:
name: app-build

- name: Copy build to d2-ci
uses: dhis2/deploy-build@master
with:
build-dir: build/app
github-token: ${{ secrets.DHIS2_BOT_GITHUB_TOKEN }}
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
name: 'dhis2: verify (app)'
name: 'release app'

on:
pull_request:
types: ['opened', 'labeled', 'reopened', 'synchronize']
push:
branches:
- 'master'
Expand All @@ -19,6 +17,7 @@ env:

jobs:
setup-matrix:
if: ${{ !contains(github.event.head_commit.message, '[skip release]') }}
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.specs }}
Expand All @@ -29,6 +28,7 @@ jobs:
run: echo "::set-output name=specs::$(node cypress/support/generateTestMatrix.js)"

build:
if: ${{ !contains(github.event.head_commit.message, '[skip release]') }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
Expand Down Expand Up @@ -89,14 +89,14 @@ jobs:
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) }}
PR_TITLE: ${{ format('Direct push to {0}', github.ref_name) }}

call-workflow-e2e-prod:
if: "!contains(github.event.head_commit.message, '[skip ci]')"
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')}}
should_record: ${{ contains(github.event.head_commit.message, '[e2e record]') }}
spec-group: ${{ needs.setup-matrix.outputs.matrix }}
secrets:
username: ${{ secrets.CYPRESS_DHIS2_USERNAME }}
Expand All @@ -109,10 +109,7 @@ jobs:
release:
runs-on: ubuntu-latest
needs: call-workflow-e2e-prod
if: |
!github.event.push.repository.fork &&
github.actor != 'dependabot[bot]' &&
(github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/'))
if: ${{ !github.event.push.repository.fork && github.actor != 'dependabot[bot]' }}
steps:
- uses: actions/checkout@v3
with:
Expand All @@ -136,19 +133,16 @@ jobs:
github-token: ${{ secrets.DHIS2_BOT_GITHUB_TOKEN }}
apphub-token: ${{ secrets.DHIS2_BOT_APPHUB_TOKEN }}

- uses: dhis2/deploy-build@master
- name: Copy bundle to d2-ci
uses: dhis2/deploy-build@master
with:
build-dir: build/app
github-token: ${{ secrets.DHIS2_BOT_GITHUB_TOKEN }}

report-release-failure:
runs-on: ubuntu-latest
needs: release
if: |
failure() &&
!cancelled() &&
github.ref == 'refs/heads/master' &&
contains(github.event.head_commit.message, 'chore(release)')
if: ${{ failure() && !cancelled() }}
steps:
- name: Checkout code
uses: actions/checkout@master
Expand Down Expand Up @@ -181,11 +175,7 @@ jobs:
report-release-success:
runs-on: ubuntu-latest
needs: release
if: |
success() &&
!cancelled() &&
github.ref == 'refs/heads/master' &&
contains(github.event.head_commit.message, 'chore(release)')
if: ${{ success() && !cancelled() }}
steps:
- name: Checkout code
uses: actions/checkout@master
Expand Down
102 changes: 102 additions & 0 deletions .github/workflows/verify-pr.yml
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 }}

0 comments on commit 14127dc

Please sign in to comment.