Github Action: How to add secrets to application.properties file before build step

Viewed 1830

I'm using Github Action CI/CD workflow to automate the build,test,deploy steps.In order to successfully build the project I need to include a secret variable (defined in the settings) to be written to application.properties file. However at the time of building this variable is not found on the file. Here's workflow yml file

name: Build and deploy JAR app to Azure Web App - harry-kart-web-api

on:
  push:
    branches:
      - master
  workflow_dispatch:

jobs:

  compile:
    runs-on: windows-latest
    name: Running Java ${{ matrix.java }} compile
    steps:
    - uses: actions/checkout@v2
    - name: Set up Java version
      uses: actions/setup-java@v1
      with:
        java-version: '11'
    - name: Compile code
      run: mvn compile



  test:
    runs-on: windows-latest
    name: Running tests
    needs: compile
    steps:
      - uses: actions/checkout@v2
      - name: Set up Java version
        uses: actions/setup-java@v1
        with:
          java-version: '11'
      - name: Run unit tests
        run: mvn test

  build:
    runs-on: windows-latest

    steps:
    - uses: actions/checkout@v2

    - name: Set up Java version
      uses: actions/setup-java@v1
      with:
        java-version: '11'

    - name: Adding secret
      run: |
          echo $DEV_PROP_FILE >> src/main/resources/application.properties
          cat src/main/resources/application.properties
      shell: bash
      env:
        DEV_PROP_FILE: ${{secrets.AZURE_APPLICATION_INSIGHTS_INSTRUMENTATION_KEY}}

    - name: Build with Maven
      run: mvn clean install

    - name: Upload artifact for deployment job
      uses: actions/upload-artifact@v2
      with:
        name: java-app
        path: '${{ github.workspace }}/target/*.jar'

  deploy:
    runs-on: windows-latest
    needs: build
    environment:
      name: 'production'
      url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}

    steps:
    - name: Download artifact from build job
      uses: actions/download-artifact@v2
      with:
        name: java-app

    - name: Deploy to Azure Web App
      id: deploy-to-webapp
      uses: azure/webapps-deploy@v2
      with:
        app-name: 'harry-kart-web-api'
        slot-name: 'production'
        publish-profile: ${{ secrets.AzureAppService_PublishProfile_c1d922ca006d4e828ca9710ff6d19933 }}
        package: '*.jar'
0 Answers
Related