diff --git a/.github/workflows/dhis2-verify-app.yml b/.github/workflows/dhis2-verify-app.yml index 8f8613c0..060daf5a 100644 --- a/.github/workflows/dhis2-verify-app.yml +++ b/.github/workflows/dhis2-verify-app.yml @@ -1,56 +1,38 @@ name: 'dhis2: verify (app)' -on: - push: - branches: +# Requirements: +# +# - Org secrets: +# DHIS2_BOT_GITHUB_TOKEN +# DHIS2_BOT_APPHUB_TOKEN +# - Enable the 'jobs.e2e' section if applicable +# - Customize the properties if needed: +# 'jobs.release.steps.*.cwd' +# 'jobs.release.steps.*.build-dir' + +on: push env: GIT_AUTHOR_NAME: '@dhis2-bot' GIT_AUTHOR_EMAIL: 'apps@dhis2.org' GIT_COMMITTER_NAME: '@dhis2-bot' GIT_COMMITTER_EMAIL: 'apps@dhis2.org' - GH_TOKEN: ${{secrets.DHIS2_BOT_GITHUB_TOKEN}} - CI: true + D2_VERBOSE: true jobs: - install: - runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, '[skip ci]')" - - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 - with: - node-version: 12.x - - - uses: actions/cache@v2 - id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) - with: - path: '**/node_modules' - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - - - name: Install - if: steps.yarn-cache.outputs.cache-hit != 'true' - run: yarn install --frozen-lockfile - build: runs-on: ubuntu-latest - needs: install - if: "!contains(github.event.head_commit.message, '[skip ci]')" steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: - node-version: 12.x + node-version: 14.x - - uses: actions/cache@v2 - id: yarn-cache - with: - path: '**/node_modules' - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + - uses: c-hive/gha-yarn-cache@v1 + - run: yarn install --frozen-lockfile - name: Build - run: yarn build + run: yarn d2-app-scripts build - uses: actions/upload-artifact@v2 with: @@ -62,62 +44,73 @@ jobs: lint: runs-on: ubuntu-latest - needs: install - if: "!contains(github.event.head_commit.message, '[skip ci]')" steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: - node-version: 12.x + node-version: 14.x - - uses: actions/cache@v2 - id: yarn-cache - with: - path: '**/node_modules' - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + - uses: c-hive/gha-yarn-cache@v1 + - run: yarn install --frozen-lockfile - - name: Build - run: yarn build + # Can be removed if translations aren't required for tests, + # or if not using the App Platform + - name: Generate translations + run: yarn d2-app-scripts i18n generate - name: Lint - run: yarn lint + run: yarn d2-style check + + # test: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v2 + # - uses: actions/setup-node@v1 + # with: + # node-version: 14.x + + # - uses: c-hive/gha-yarn-cache@v1 + # - run: yarn install --frozen-lockfile + + # # Can be removed if translations aren't required for tests, + # # or if not using the App Platform + # - name: Generate translations + # run: yarn d2-app-scripts i18n generate - publish: + # - name: Test + # run: yarn d2-app-scripts test + + release: runs-on: ubuntu-latest needs: [build, lint] - if: "!contains(github.event.head_commit.message, '[skip ci]')" + if: "!github.event.push.repository.fork && github.actor != 'dependabot[bot]'" steps: - uses: actions/checkout@v2 with: - token: ${{env.GH_TOKEN}} + token: ${{ secrets.DHIS2_BOT_GITHUB_TOKEN }} - uses: actions/setup-node@v1 with: - node-version: 12.x + node-version: 14.x - uses: actions/download-artifact@v2 with: name: app-build + # ensure that d2-app-scripts is available + - uses: c-hive/gha-yarn-cache@v1 + - run: yarn install --frozen-lockfile + + - uses: dhis2/action-semantic-release@master + with: + publish-apphub: true + publish-github: true + github-token: ${{ secrets.DHIS2_BOT_GITHUB_TOKEN }} + apphub-token: ${{ secrets.DHIS2_BOT_APPHUB_TOKEN }} + - uses: dhis2/deploy-build@master with: # uncomment following line for monorepo apps: #cwd: ./packages/app build-dir: build/app - github-token: ${{ env.GH_TOKEN }} - - release: - runs-on: ubuntu-latest - needs: [publish] - if: "github.event_name == 'push' && !contains(github.event.head_commit.message, '[skip ci]')" - steps: - - uses: actions/checkout@v2 - with: - token: ${{env.GH_TOKEN}} - - - uses: actions/setup-node@v1 - with: - node-version: 12.x - - - name: Publish release to GitHub - run: npx @dhis2/cli-utils release + github-token: ${{ secrets.DHIS2_BOT_GITHUB_TOKEN }}