Skip to content

chore(ci): fixed the widget and embed pipelines #1

chore(ci): fixed the widget and embed pipelines

chore(ci): fixed the widget and embed pipelines #1

name: Deploy DEV API
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
workflow_dispatch:
push:
branches:
- next
- main
paths:
- 'package.json'
- 'yarn.lock'
- 'apps/api/**'
- 'libs/dal/**'
- 'libs/shared/**'
env:
TF_WORKSPACE: novu-dev
jobs:
test_api:

Check failure on line 21 in .github/workflows/dev-deploy-api.yml

View workflow run for this annotation

GitHub Actions / Deploy DEV API

Invalid workflow file

The workflow is not valid. .github/workflows/dev-deploy-api.yml (Line: 21, Col: 3): Error calling workflow 'lancer-pro/novu/.github/workflows/reusable-api-e2e.yml@c593311f090785c60a36e55faec8575fffccf728'. The nested job 'e2e_api' is requesting 'deployments: write, packages: write, id-token: write', but is only allowed 'deployments: none, packages: read, id-token: none'.
strategy:
matrix:
name: ['novu/api-ee', 'novu/api']
uses: ./.github/workflows/reusable-api-e2e.yml
with:
ee: ${{ contains (matrix.name,'-ee') }}
job-name: ${{ matrix.name }}
secrets: inherit
deploy_dev_api:
if: "!contains(github.event.head_commit.message, 'ci skip')"
# The type of runner that the job will run on
runs-on: ubuntu-latest
needs: test_api
timeout-minutes: 80
environment: Development
permissions:
contents: read
packages: write
deployments: write
id-token: write
strategy:
matrix:
name: ['novu/api-ee', 'novu/api']
steps:
- uses: actions/checkout@v3
with:
submodules: ${{ contains (matrix.name,'-ee') }}
token: ${{ secrets.SUBMODULES_TOKEN }}
- uses: ./.github/actions/setup-project
with:
submodules: ${{ contains (matrix.name,'-ee') }}
- uses: ./.github/actions/docker/build-api
id: docker_build
with:
tag: dev
push: 'true'
github_token: ${{ secrets.GITHUB_TOKEN }}
docker_name: ${{ matrix.name }}
bullmq_secret: ${{ secrets.BULL_MQ_PRO_NPM_TOKEN }}
- name: Checkout cloud infra
if: ${{ contains (matrix.name,'-ee') }}
uses: actions/checkout@master
with:
repository: novuhq/cloud-infra
token: ${{ secrets.GH_PACKAGES }}
path: cloud-infra
- name: Configure AWS credentials
if: ${{ contains (matrix.name,'-ee') }}
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: eu-west-2
- name: Terraform setup
if: ${{ contains (matrix.name,'-ee') }}
uses: hashicorp/setup-terraform@v1
with:
cli_config_credentials_token: ${{ secrets.TF_API_TOKEN }}
terraform_version: 1.5.5
terraform_wrapper: false
- name: Terraform Init
if: ${{ contains (matrix.name,'-ee') }}
working-directory: cloud-infra/terraform/novu/aws
run: terraform init
- name: Terraform get output
if: ${{ contains (matrix.name,'-ee') }}
working-directory: cloud-infra/terraform/novu/aws
id: terraform
run: |
echo "api_ecs_container_name=$(terraform output -json api_ecs_container_name | jq -r .)" >> $GITHUB_ENV
echo "api_ecs_service=$(terraform output -json api_ecs_service | jq -r .)" >> $GITHUB_ENV
echo "api_ecs_cluster=$(terraform output -json api_ecs_cluster | jq -r .)" >> $GITHUB_ENV
echo "api_task_name=$(terraform output -json api_task_name | jq -r .)" >> $GITHUB_ENV
- name: Download task definition
if: ${{ contains (matrix.name,'-ee') }}
run: |
aws ecs describe-task-definition --task-definition ${{ env.api_task_name }} \
--query taskDefinition > task-definition.json
- name: Render Amazon ECS task definition
if: ${{ contains (matrix.name,'-ee') }}
id: render-web-container
uses: aws-actions/amazon-ecs-render-task-definition@v1
with:
task-definition: task-definition.json
container-name: ${{ env.api_ecs_container_name }}
image: ${{ steps.docker_build.outputs.image }}
- name: Deploy to Amazon ECS service
if: ${{ contains (matrix.name,'-ee') }}
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
with:
task-definition: ${{ steps.render-web-container.outputs.task-definition }}
service: ${{ env.api_ecs_service }}
cluster: ${{ env.api_ecs_cluster }}
wait-for-service-stability: true
- name: get-npm-version
if: ${{ contains (matrix.name,'-ee') }}
id: package-version
uses: martinbeentjes/npm-get-version-action@main
with:
path: apps/api
- name: Create Sentry release
if: ${{ contains (matrix.name,'-ee') }}
uses: getsentry/action-release@v1
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: novu-r9
SENTRY_PROJECT: api
with:
version: ${{ steps.package-version.outputs.current-version}}
environment: dev
version_prefix: v
sourcemaps: apps/api/dist
ignore_empty: true
ignore_missing: true
url_prefix: "~"
newrelic:
runs-on: ubuntu-latest
name: New Relic Deploy
needs: deploy_dev_api
environment: Development
steps:
# This step builds a var with the release tag value to use later
- name: Set Release Version from Tag
run: echo "RELEASE_VERSION=${{ github.ref_name }}" >> $GITHUB_ENV
# This step creates a new Change Tracking Marker
- name: New Relic Application Deployment Marker
uses: newrelic/[email protected]
with:
region: EU
apiKey: ${{ secrets.NEW_RELIC_API_KEY }}
guid: "MzgxMjQwOHxBUE18QVBQTElDQVRJT058NDk3NjQzODIy"
version: "${{ env.RELEASE_VERSION }}"
user: "${{ github.actor }}"