From 21dd8061792b64792859827261dea039ed2deecd Mon Sep 17 00:00:00 2001 From: sarmstrong Date: Tue, 23 Jan 2024 15:53:24 +0300 Subject: [PATCH] actions add yonote check template. --- ...onote-node-pull-request-check-template.yml | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 .gitea/workflows/yonote-node-pull-request-check-template.yml diff --git a/.gitea/workflows/yonote-node-pull-request-check-template.yml b/.gitea/workflows/yonote-node-pull-request-check-template.yml new file mode 100644 index 0000000..99d111c --- /dev/null +++ b/.gitea/workflows/yonote-node-pull-request-check-template.yml @@ -0,0 +1,107 @@ +name: Pull request check +on: + workflow_call: + inputs: + node-version: + description: "Set node version" + default: 20 + type: string + yarn-commands: + description: "yarn-commands" + default: |- + yarn install + yarn test + type: string + notification_enabled: + description: "Включение оповещений о разворачивании, требуется иметь url для оповещений в vault" + default: false + required: false + type: boolean + custom_notification_hook_enabled: + description: "Использовать ли кастомный url хук для оповещений (должен лежать в vault секрете проекта)" + default: false + required: false + type: boolean + notification_channel: + description: "Канал для оповещений о результатах деплоя" + default: internal_projects_notifications + required: false + type: string + vault_secrets_base_path: + description: 'Базовый путь для секретов проекта в vault' + required: false + type: string + sonar_enabled: + default: false + required: false + type: boolean + secrets: + VAULT_ROLE_ID: + required: true + VAULT_SECRET_ID: + required: true + +env: + vault_main_base_path: dev/wilix/main/data/ci + +jobs: + check: + name: check and test + runs-on: ubuntu-latest + steps: + - uses: https://github.com/actions/checkout@v3 + - name: Use Node.js ${{ inputs.node-version }} + uses: https://github.com/actions/setup-node@v3 + with: + node-version: ${{ inputs.node-version }} + - run: ${{ inputs.yarn-commands }} + + - name: Get general notification url + if: ${{ inputs.notification_enabled && ! inputs.custom_notification_hook_enabled && (job.status == 'success' || job.status == 'failure') }} + uses: https://github.com/hashicorp/vault-action@v2 + with: + url: https://vault.wilix.dev + method: approle + roleId: ${{ secrets.VAULT_ROLE_ID }} + secretId: ${{ secrets.VAULT_SECRET_ID }} + secrets: | + ${{ env.vault_main_base_path }} notification_url | MATTERMOST_WEBHOOK_URL ; + + - name: Get custom notification url + if: ${{ inputs.notification_enabled && inputs.custom_notification_hook_enabled && (job.status == 'success' || job.status == 'failure') }} + uses: https://github.com/hashicorp/vault-action@v2 + with: + url: https://vault.wilix.dev + method: approle + roleId: ${{ secrets.VAULT_ROLE_ID }} + secretId: ${{ secrets.VAULT_SECRET_ID }} + secrets: | + ${{ inputs.vault_secrets_base_path }} notification_url | MATTERMOST_WEBHOOK_URL ; + + - name: prepare failed notification body + if: ${{ inputs.notification_enabled && job.status == 'failure' }} + uses: https://github.com/finnp/create-file-action@master + env: + FILE_NAME: "mattermost.json" + FILE_DATA: | + { + "channel": "${{ inputs.notification_channel }}", + "attachments": [ + { + "fallback": "Проверка упала ${{ gitea.repository }}", + "text": "@${{ gitea.actor }} упала тестовая сборка", + "color": "#FF0000", + "fields": [ + { + "short": true, + "title": "Сборка", + "value": "https://git.wilix.dev/${{ gitea.repository }}/actions/runs/${{ gitea.run_id }}" + } + ] + } + ] + } + + - name: loop fail notification + if: ${{ inputs.notification_enabled && job.status == 'failure' }} + uses: https://github.com/mattermost/action-mattermost-notify@master -- 2.40.1