Skip to content

readme grammar check #27

readme grammar check

readme grammar check #27

name: Full validation
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
permissions:
id-token: write
jobs:
build:
runs-on: ubuntu-latest
environment: staging
env:
PACKAGE_VERSION: 1.0.0-beta.1
steps:
- uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: |
6.0.x
7.0.x
- name: Pack MySqlConnector Extension
working-directory: ./Batec.Azure.Data.Extensions.MySqlConnector/src
run: dotnet pack -c Release -o ./../../artifacts/
- name: Pack Npgsql Extension
working-directory: ./Batec.Azure.Data.Extensions.Npgsql/src
run: dotnet pack -c Release -o ./../../artifacts/
- name: Restore Solution
run: dotnet restore -s ./artifacts/ -s https://api.nuget.org/v3/index.json Batec.Azure.Data.Extensions.sln
- name: Build
run: dotnet build --no-restore Batec.Azure.Data.Extensions.sln
- name: Azure CLI Login
uses: azure/login@v1
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: Test Common
working-directory: ./Batec.Azure.Data.Extensions.Common/tests/
run: dotnet test
tests-mysql:
needs: build
environment: staging
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: |
6.0.x
7.0.x
- name: Azure CLI Login
uses: azure/login@v1
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
# Install the latest version of the Terraform CLI
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_wrapper: false
# Initialize a new or existing Terraform working directory by creating initial files, loading any remote state, downloading modules, etc.
- name: 'Terraform Init MySql'
working-directory: "./iac/mysql"
env:
ARM_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
ARM_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
ARM_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
run: terraform init
# Terraform Apply
- name: 'Terraform Apply MySql'
id: terraform-apply-mysql
working-directory: "./iac/mysql"
env:
ARM_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
ARM_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
ARM_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
run: terraform apply -auto-approve
- name: Get Terraform output
id: get-terraform-output-mysql
working-directory: "./iac/mysql"
env:
ARM_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
ARM_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
ARM_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
run: |
MYSQL_FQDN=$(terraform output -raw fqdn)
MYSQL_DATABASE=$(terraform output -raw database)
MYSQL_SERVER_ADMIN=$(terraform output -raw aad_admin)
echo "MYSQL_FQDN=${MYSQL_FQDN}" >> $GITHUB_ENV
echo "MYSQL_DATABASE=${MYSQL_DATABASE}" >> $GITHUB_ENV
echo "MYSQL_SERVER_ADMIN=${MYSQL_SERVER_ADMIN}" >> $GITHUB_ENV
continue-on-error: true
- name: Pack MySqlConnector Extension
working-directory: ./Batec.Azure.Data.Extensions.MySqlConnector/src
run: dotnet pack -c Release -o ./../../artifacts/
- name: Pack Npgsql Extension
working-directory: ./Batec.Azure.Data.Extensions.Npgsql/src
run: dotnet pack -c Release -o ./../../artifacts/
- name: Restore Solution
run: dotnet restore -s ./artifacts/ -s https://api.nuget.org/v3/index.json Batec.Azure.Data.Extensions.sln
- name: Build
run: dotnet build --no-restore Batec.Azure.Data.Extensions.sln
- name: Test MySqlConnector
id: test-mysqlconnector
if: steps.get-terraform-output-mysql.outcome == 'success'
working-directory: ./Batec.Azure.Data.Extensions.MySqlConnector/tests/
run: dotnet test
continue-on-error: true
env:
MYSQL_FQDN: ${{ env.MYSQL_FQDN }}
MYSQL_DATABASE: ${{ env.MYSQL_DATABASE }}
MYSQL_SERVER_ADMIN: ${{ env.MYSQL_SERVER_ADMIN }}
- name: Setup EF tools
run: dotnet tool install --global dotnet-ef
continue-on-error: true
- name: Setup MySQL EF connection string
id: setup-mysql-ef-connection-string
working-directory: ./Batec.Azure.Data.Extensions.Pomelo.EntityFrameworkCore/tests/
env:
POSTGRESQL_FQDN: ${{ env.POSTGRESQL_FQDN }}
POSTGRESQL_DATABASE: ${{ env.POSTGRESQL_DATABASE }}
POSTGRESQL_SERVER_ADMIN: ${{ env.POSTGRESQL_SERVER_ADMIN }}
run: |
MYSQL_CONNECTION_STRING="Server=${{ env.MYSQL_FQDN }};Port=3306;User ID=${{ env.MYSQL_SERVER_ADMIN }};Database=${{ env.MYSQL_DATABASE }};SSL Mode=Required;Allow Public Key Retrieval=True;Connection Timeout=30"
echo "{\"ConnectionStrings\":{\"DefaultConnection\":\"${MYSQL_CONNECTION_STRING}\"}}" >appsettings.json
continue-on-error: true
- name: Setup MySQL EF database
id: setup-mysql-ef-database
if: steps.setup-mysql-ef-connection-string.outcome == 'success'
working-directory: ./Batec.Azure.Data.Extensions.Pomelo.EntityFrameworkCore/tests/
run: dotnet ef database update
continue-on-error: true
- name: Test MySqlConnector Entity Framework
id: test-mysqlconnector-ef
if: steps.setup-mysql-ef-database.outcome == 'success'
working-directory: ./Batec.Azure.Data.Extensions.Pomelo.EntityFrameworkCore/tests/
run: dotnet test
continue-on-error: true
env:
MYSQL_FQDN: ${{ env.MYSQL_FQDN }}
MYSQL_DATABASE: ${{ env.MYSQL_DATABASE }}
MYSQL_SERVER_ADMIN: ${{ env.MYSQL_SERVER_ADMIN }}
# Terraform Destroy
- name: Terraform Destroy
if: steps.terraform-apply-mysql.outcome == 'success'
working-directory: "./iac/mysql"
env:
ARM_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
ARM_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
ARM_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
run: terraform destroy -auto-approve
- name: Tests failed
if: steps.test-mysqlconnector.outcome != 'success' || steps.test-mysqlconnector-ef.outcome != 'success'
run: |
echo "Tests failed"
exit 1
tests-postgresql:
needs: build
environment: staging
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Azure CLI Login
uses: azure/login@v1
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: |
6.0.x
7.0.x
# Install the latest version of the Terraform CLI
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_wrapper: false
# Initialize a new or existing Terraform working directory by creating initial files, loading any remote state, downloading modules, etc.
- name: 'Terraform Init Postgresql'
working-directory: "./iac/postgresql"
env:
ARM_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
ARM_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
ARM_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
run: terraform init
# Terraform Apply
- name: 'Terraform Apply Postgresql'
id: terraform-apply-postgresql
working-directory: "./iac/postgresql"
env:
ARM_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
ARM_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
ARM_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
run: terraform apply -auto-approve
- name: Get Terraform output
working-directory: "./iac/postgresql"
env:
ARM_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
ARM_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
ARM_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
run: |
POSTGRESQL_FQDN=$(terraform output -raw fqdn)
POSTGRESQL_DATABASE=$(terraform output -raw database)
POSTGRESQL_SERVER_ADMIN=$(terraform output -raw aad_admin)
echo "POSTGRESQL_FQDN=${POSTGRESQL_FQDN}" >> $GITHUB_ENV
echo "POSTGRESQL_DATABASE=${POSTGRESQL_DATABASE}" >> $GITHUB_ENV
echo "POSTGRESQL_SERVER_ADMIN=${POSTGRESQL_SERVER_ADMIN}" >> $GITHUB_ENV
continue-on-error: true
- name: Pack MySqlConnector Extension
working-directory: ./Batec.Azure.Data.Extensions.MySqlConnector/src
run: dotnet pack -c Release -o ./../../artifacts/
- name: Pack Npgsql Extension
working-directory: ./Batec.Azure.Data.Extensions.Npgsql/src
run: dotnet pack -c Release -o ./../../artifacts/
- name: Restore Solution
run: dotnet restore -s ./artifacts/ -s https://api.nuget.org/v3/index.json Batec.Azure.Data.Extensions.sln
- name: Build
run: dotnet build --no-restore Batec.Azure.Data.Extensions.sln
- name: Test Npgsql
id: tests-postgresql
working-directory: ./Batec.Azure.Data.Extensions.Npgsql/tests/
run: dotnet test
continue-on-error: true
env:
POSTGRESQL_FQDN: ${{ env.POSTGRESQL_FQDN }}
POSTGRESQL_DATABASE: ${{ env.POSTGRESQL_DATABASE }}
POSTGRESQL_SERVER_ADMIN: ${{ env.POSTGRESQL_SERVER_ADMIN }}
- name: Setup EF tools
run: dotnet tool install --global dotnet-ef
continue-on-error: true
- name: Setup POSTGRESQL EF connection string
id: setup-postgresql-ef-connetion-string
working-directory: ./Batec.Azure.Data.Extensions.Npgsql.EntityFrameworkCore/tests/
env:
POSTGRESQL_FQDN: ${{ env.POSTGRESQL_FQDN }}
POSTGRESQL_DATABASE: ${{ env.POSTGRESQL_DATABASE }}
POSTGRESQL_SERVER_ADMIN: ${{ env.POSTGRESQL_SERVER_ADMIN }}
run: |
POSTGRESQL_CONNECTION_STRING="Server=$POSTGRESQL_FQDN;Port=5432;User ID=$POSTGRESQL_SERVER_ADMIN;Database=$POSTGRESQL_DATABASE;SSL Mode=Require;Trust Server Certificate=true"
echo "{\"ConnectionStrings\":{\"DefaultConnection\":\"${POSTGRESQL_CONNECTION_STRING}\"}}" >appsettings.json
continue-on-error: true
- name: Setup PostgreSQL EF database
id: setup-postgresql-ef-db
if: steps.setup-postgresql-ef-connetion-string.outcome == 'success'
working-directory: ./Batec.Azure.Data.Extensions.Npgsql.EntityFrameworkCore/tests/
run: dotnet ef database update
continue-on-error: true
- name: Test Postgresql Entity Framework
id: tests-postgresql-ef
if: steps.setup-postgresql-ef-db.outcome == 'success'
working-directory: ./Batec.Azure.Data.Extensions.Npgsql.EntityFrameworkCore/tests/
run: dotnet test
continue-on-error: true
env:
POSTGRESQL_FQDN: ${{ env.POSTGRESQL_FQDN }}
POSTGRESQL_DATABASE: ${{ env.POSTGRESQL_DATABASE }}
POSTGRESQL_SERVER_ADMIN: ${{ env.POSTGRESQL_SERVER_ADMIN }}
# Terraform Destroy
- name: Terraform Destroy
if: steps.terraform-apply-postgresql.outcome == 'success'
working-directory: "./iac/postgresql"
env:
ARM_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }}
ARM_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
ARM_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
run: terraform destroy -auto-approve
- name: Tests failed
if: steps.tests-postgresql.outcome != 'success' || steps.tests-postgresql-ef.outcome != 'success'
run: |
echo "Tests failed"
exit 1