From d99576e63daab801f7adab8474b04009a240c88e Mon Sep 17 00:00:00 2001 From: Songbo Wang Date: Thu, 17 Oct 2024 15:18:29 +0800 Subject: [PATCH] Configure Azure Developer Pipeline (#90) ## Purpose add github action files ## Does this introduce a breaking change? ``` [ ] Yes [x] No ``` ## Pull Request Type What kind of change does this Pull Request introduce? ``` [ ] Bugfix [x] Feature [ ] Code style update (formatting, local variables) [ ] Refactoring (no functional changes, no api changes) [ ] Documentation content changes [ ] Other... Please describe: ``` --- .github/workflows/azure-dev.yml | 51 +++++++++++++++++++ .github/workflows/maven-build.yml | 2 + .../workflows/validation-sample-workflow.yml | 27 ++++++++++ 3 files changed, 80 insertions(+) create mode 100644 .github/workflows/azure-dev.yml create mode 100644 .github/workflows/validation-sample-workflow.yml diff --git a/.github/workflows/azure-dev.yml b/.github/workflows/azure-dev.yml new file mode 100644 index 0000000..0396529 --- /dev/null +++ b/.github/workflows/azure-dev.yml @@ -0,0 +1,51 @@ +# Run when commits are pushed to main +on: + workflow_dispatch: + +# Set up permissions for deploying with secretless Azure federated credentials +# https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure?tabs=azure-portal%2Clinux#set-up-azure-login-with-openid-connect-authentication +permissions: + id-token: write + contents: read + +jobs: + build: + runs-on: ubuntu-latest + env: + AZURE_CLIENT_ID: ${{ vars.AZURE_CLIENT_ID }} + AZURE_TENANT_ID: ${{ vars.AZURE_TENANT_ID }} + AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }} + AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }} + AZURE_LOCATION: ${{ vars.AZURE_LOCATION }} + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install azd + uses: Azure/setup-azd@v1.0.0 + + - name: Set up JDK 17 + uses: actions/setup-java@v2 + with: + java-version: '17' + distribution: 'adopt' + cache: maven + + - name: Log in with Azure (Federated Credentials) + run: | + azd auth login ` + --client-id "$Env:AZURE_CLIENT_ID" ` + --federated-credential-provider "github" ` + --tenant-id "$Env:AZURE_TENANT_ID" + shell: pwsh + + - name: Provision Infrastructure + run: azd provision --no-prompt + env: + AZD_INITIAL_ENVIRONMENT_CONFIG: ${{ secrets.AZD_INITIAL_ENVIRONMENT_CONFIG }} + + - name: Package Application + run: azd package --all + + - name: Deploy Application + run: azd deploy --no-prompt diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml index ec3c4ed..84a65b4 100644 --- a/.github/workflows/maven-build.yml +++ b/.github/workflows/maven-build.yml @@ -18,11 +18,13 @@ jobs: steps: - uses: actions/checkout@v2 + - name: Set up JDK 17 uses: actions/setup-java@v2 with: java-version: '17' distribution: 'adopt' cache: maven + - name: Build with Maven run: mvn -B package --file src/pom.xml diff --git a/.github/workflows/validation-sample-workflow.yml b/.github/workflows/validation-sample-workflow.yml new file mode 100644 index 0000000..df4fb04 --- /dev/null +++ b/.github/workflows/validation-sample-workflow.yml @@ -0,0 +1,27 @@ +name: Validation Sample Workflow +on: + workflow_dispatch: + +permissions: + contents: read + id-token: write + pull-requests: write + +jobs: + template_validation_job: + runs-on: ubuntu-latest + name: template validation + steps: + - uses: actions/checkout@v4 + + - uses: microsoft/template-validation-action@v0.1 + env: + AZURE_CLIENT_ID: ${{ vars.AZURE_CLIENT_ID }} + AZURE_TENANT_ID: ${{ vars.AZURE_TENANT_ID }} + AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }} + AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }} + AZURE_LOCATION: ${{ vars.AZURE_LOCATION }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: print result + run: cat ${{ steps.validation.outputs.resultFile }} \ No newline at end of file