From 44c97e26b2d283fddaee3d3fcd30c1fa99a11bfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karol=20S=C3=B3jko?= Date: Mon, 2 Oct 2023 14:06:19 +0200 Subject: [PATCH] chore: fix publishing an pr workflows --- .github/workflows/publish.yml | 58 ++++++++++++++++++++++++++++------- .github/workflows/snjs.pr.yml | 36 ++++++++++++++++++++-- 2 files changed, 81 insertions(+), 13 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index eb1f0a975..d524a07ef 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -5,7 +5,8 @@ on: branches: [ main ] jobs: - Build: + build: + name: Build & Test if: "${{ contains(github.event.head_commit.message, 'chore(release): publish') == false }}" runs-on: ubuntu-latest steps: @@ -14,14 +15,12 @@ jobs: with: token: ${{ secrets.CI_PAT_TOKEN }} fetch-depth: 0 - - name: Set up Node uses: actions/setup-node@v3 with: registry-url: 'https://registry.npmjs.org' node-version-file: '.nvmrc' cache: 'yarn' - - name: Setup git config run: | git config --global user.name "standardci" @@ -33,22 +32,22 @@ jobs: passphrase: ${{ secrets.PASSPHRASE }} git_user_signingkey: true git_commit_gpgsign: true - - name: Install dependencies run: yarn install --immutable - - name: Build run: yarn build:all - - name: ESLint run: yarn lint - - name: Build Android run: yarn android:bundle - - name: Test run: yarn test + build-docker: + name: Build Docker Image + if: "${{ contains(github.event.head_commit.message, 'chore(release): publish') == false }}" + runs-on: ubuntu-latest + steps: - name: Login to Docker Hub if: "${{ contains(github.event.head_commit.message, 'skip e2e') == false }}" uses: docker/login-action@v2 @@ -62,7 +61,12 @@ jobs: yarn docker build @standardnotes/snjs -t standardnotes/snjs:${{ github.sha }} docker push standardnotes/snjs:${{ github.sha }} - - name: Run E2E test suite + e2e-base: + name: E2E Base Test Suite + needs: build-docker + runs-on: ubuntu-latest + steps: + - name: Run E2E base test suite if: "${{ contains(github.event.head_commit.message, 'skip e2e') == false }}" uses: convictional/trigger-workflow-and-wait@master with: @@ -71,19 +75,51 @@ jobs: github_token: ${{ secrets.CI_PAT_TOKEN }} workflow_file_name: e2e-test-suite.yml wait_interval: 30 - client_payload: '{"snjs_image_tag": "${{ github.sha }}", "author": "${{ github.actor }}", "ref_name": "app:${{ github.ref }}"}' + client_payload: '{"snjs_image_tag": "${{ github.sha }}", "suite": "base", "author": "${{ github.actor }}", "ref_name": "app:${{ github.ref }}"}' propagate_failure: true trigger_workflow: true wait_workflow: true + e2e-vaults: + name: E2E Vaults Test Suite + needs: build-docker + runs-on: ubuntu-latest + steps: + - name: Run E2E vaults test suite + if: "${{ contains(github.event.head_commit.message, 'skip e2e') == false }}" + uses: convictional/trigger-workflow-and-wait@master + with: + owner: standardnotes + repo: server + github_token: ${{ secrets.CI_PAT_TOKEN }} + workflow_file_name: e2e-test-suite.yml + wait_interval: 30 + client_payload: '{"snjs_image_tag": "${{ github.sha }}", "suite": "vaults", "author": "${{ github.actor }}", "ref_name": "app:${{ github.ref }}"}' + propagate_failure: true + trigger_workflow: true + wait_workflow: true + + publish: + name: Publish to NPM + needs: [e2e-base, e2e-vaults] + runs-on: ubuntu-latest + steps: + - name: Install dependencies + run: yarn install --immutable + - name: Build + run: yarn build:all - name: Bump version run: yarn release:prod - - name: Publish run: yarn publish:prod env: NODE_AUTH_TOKEN: ${{ secrets.CI_NPM_TOKEN }} + publish-docker: + name: Publish to Docker Hub + needs: [e2e-base, e2e-vaults] + runs-on: ubuntu-latest + steps: - name: Publish SNJS Docker image as stable if: "${{ contains(github.event.head_commit.message, 'skip e2e') == false }}" run: | diff --git a/.github/workflows/snjs.pr.yml b/.github/workflows/snjs.pr.yml index f07c39bad..2723bd650 100644 --- a/.github/workflows/snjs.pr.yml +++ b/.github/workflows/snjs.pr.yml @@ -1,4 +1,4 @@ -name: SNJS PR — E2E Tests +name: SNJS PR — E2E Tests on: pull_request: @@ -29,6 +29,14 @@ jobs: run: yarn install --immutable - name: Build run: yarn build:snjs + - name: ESLint + run: yarn lint + - name: Test + run: yarn test + + build-docker: + runs-on: ubuntu-latest + steps: - name: Login to Docker Hub uses: docker/login-action@v2 with: @@ -40,6 +48,12 @@ jobs: docker push standardnotes/snjs:${{ github.sha }} docker tag standardnotes/snjs:${{ github.sha }} standardnotes/snjs:test docker push standardnotes/snjs:test + + e2e-base: + name: E2E Base Test Suite + needs: build-docker + runs-on: ubuntu-latest + steps: - name: Run E2E test suite uses: convictional/trigger-workflow-and-wait@master with: @@ -48,7 +62,25 @@ jobs: github_token: ${{ secrets.CI_PAT_TOKEN }} workflow_file_name: e2e-test-suite.yml wait_interval: 30 - client_payload: '{"snjs_image_tag": "${{ github.sha }}", "author": "${{ github.actor }}", "ref_name": "app:${{ github.ref }}"}' + client_payload: '{"snjs_image_tag": "${{ github.sha }}", "suite": "base", "author": "${{ github.actor }}", "ref_name": "app:${{ github.ref }}"}' + propagate_failure: true + trigger_workflow: true + wait_workflow: true + + e2e-vaults: + name: E2E Vaults Test Suite + needs: build-docker + runs-on: ubuntu-latest + steps: + - name: Run E2E vaults test suite + uses: convictional/trigger-workflow-and-wait@master + with: + owner: standardnotes + repo: server + github_token: ${{ secrets.CI_PAT_TOKEN }} + workflow_file_name: e2e-test-suite.yml + wait_interval: 30 + client_payload: '{"snjs_image_tag": "${{ github.sha }}", "suite": "vaults", "author": "${{ github.actor }}", "ref_name": "app:${{ github.ref }}"}' propagate_failure: true trigger_workflow: true wait_workflow: true