diff --git a/.github/workflows/production-pipeline.yml b/.github/workflows/production-pipeline.yml index 6aa9db3..d8a41f1 100644 --- a/.github/workflows/production-pipeline.yml +++ b/.github/workflows/production-pipeline.yml @@ -1,51 +1,54 @@ name: Production pipeline on: - workflow_dispatch: # Allows manual execution - -jobs: - build-and-deploy: - runs-on: ubuntu-latest - steps: - - name: 'Checkout GitHub Action' - uses: actions/checkout@main - - - name: 'Login via Azure CLI' - uses: azure/login@v1 - with: - creds: ${{ secrets.AZURE_CREDENTIALS }} - - - name: 'Set up Kubernetes' - uses: azure/aks-set-context@v2 - with: - creds: ${{ secrets.AZURE_CREDENTIALS }} - cluster-name: ${{ secrets.AKS_CLUSTER_NAME }} - resource-group: ${{ secrets.AKS_RESOURCE_GROUP }} - - - name: 'Build and push image' - uses: azure/docker-login@v1 - with: - login-server: ${{ secrets.REGISTRY_LOGIN_SERVER }} - username: ${{ secrets.REGISTRY_USERNAME }} - password: ${{ secrets.REGISTRY_PASSWORD }} - - run: | - if [ ! -f .env ]; then - touch .env - fi - cp swagger.prod .env - docker build -t ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi:${{ github.sha }} -f ./docker/Dockerfile . - docker tag ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi:${{ github.sha }} ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi:latest - - docker push ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi:${{ github.sha }} - docker push ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi:latest - - name: 'Copy production values files' - run: | - cp ./helm-chart/values-production.yaml ./helm-chart/values.yaml - - - name: 'Deploy to AKS with Helm' - run: | - helm upgrade --install whatnow ./helm-chart \ - --namespace ${{ secrets.AKS_CLUSTER_NAMESPACE }} \ - --create-namespace + pull_request: + types: + - closed + branches: + - 'staging' +jobs: + build-and-deploy: + runs-on: ubuntu-latest + steps: + - name: 'Checkout GitHub Action' + uses: actions/checkout@main + + - name: 'Login via Azure CLI' + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + + - name: 'Set up Kubernetes' + uses: azure/aks-set-context@v2 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + cluster-name: ${{ secrets.AKS_CLUSTER_NAME }} + resource-group: ${{ secrets.AKS_RESOURCE_GROUP }} + + - name: 'Build and push image' + uses: azure/docker-login@v1 + with: + login-server: ${{ secrets.REGISTRY_LOGIN_SERVER }} + username: ${{ secrets.REGISTRY_USERNAME }} + password: ${{ secrets.REGISTRY_PASSWORD }} + - run: | + if [ ! -f .env ]; then + touch .env + fi + cp swagger.prod .env + docker build -t ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi-qa:${{ github.sha }} -f ./docker/Dockerfile . + docker tag ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi-qa:${{ github.sha }} ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi-qa:latest + docker push ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi-qa:${{ github.sha }} + docker push ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi-qa:latest + + - name: 'Copy staging values file' + run: | + cp ./helm-chart/values-production.yaml ./helm-chart/values.yaml + + - name: 'Deploy to AKS with Helm' + run: | + helm upgrade --install whatnow-qa ./helm-chart \ + --namespace ${{ secrets.AKS_CLUSTER_NAMESPACE_QA }} \ + --create-namespace diff --git a/.github/workflows/qa-pipeline.yml b/.github/workflows/qa-pipeline.yml index 91733c0..f515129 100644 --- a/.github/workflows/qa-pipeline.yml +++ b/.github/workflows/qa-pipeline.yml @@ -1,57 +1,54 @@ name: Stage pipeline on: - pull_request: - types: - - closed - branches: - - 'staging' + pull_request: + types: + - closed + branches: + - 'staging' jobs: - build-and-deploy: - runs-on: ubuntu-latest - steps: - - name: 'Checkout GitHub Action' - uses: actions/checkout@main - - - name: 'Login via Azure CLI' - uses: azure/login@v1 - with: - creds: ${{ secrets.AZURE_CREDENTIALS }} - - - name: 'Set up Kubernetes' - uses: azure/aks-set-context@v2 - with: - creds: ${{ secrets.AZURE_CREDENTIALS }} - cluster-name: ${{ secrets.AKS_CLUSTER_NAME }} - resource-group: ${{ secrets.AKS_RESOURCE_GROUP }} - - - name: 'Build and push image' - uses: azure/docker-login@v1 - with: - login-server: ${{ secrets.REGISTRY_LOGIN_SERVER }} - username: ${{ secrets.REGISTRY_USERNAME }} - password: ${{ secrets.REGISTRY_PASSWORD }} - - run: | - if [ ! -f .env ]; then - touch .env - fi - cp swagger.qa .env - docker build -t ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi-qa:${{ github.sha }} -f ./docker/Dockerfile . - docker tag ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi-qa:${{ github.sha }} ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi-qa:latest - - docker push ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi-qa:${{ github.sha }} - docker push ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi-qa:latest - - - name: 'Copy staging values file' - run: | - cp ./helm-chart/values-staging.yaml ./helm-chart/values.yaml - - - name: 'Deploy to AKS with Helm' - run: | - helm upgrade --install whatnow-qa ./helm-chart \ - --namespace ${{ secrets.AKS_CLUSTER_NAMESPACE_QA }} \ - --create-namespace - - + build-and-deploy: + runs-on: ubuntu-latest + steps: + - name: 'Checkout GitHub Action' + uses: actions/checkout@main + + - name: 'Login via Azure CLI' + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + + - name: 'Set up Kubernetes' + uses: azure/aks-set-context@v2 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + cluster-name: ${{ secrets.AKS_CLUSTER_NAME }} + resource-group: ${{ secrets.AKS_RESOURCE_GROUP }} + + - name: 'Build and push image' + uses: azure/docker-login@v1 + with: + login-server: ${{ secrets.REGISTRY_LOGIN_SERVER }} + username: ${{ secrets.REGISTRY_USERNAME }} + password: ${{ secrets.REGISTRY_PASSWORD }} + - run: | + if [ ! -f .env ]; then + touch .env + fi + cp swagger.qa .env + docker build -t ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi-qa:${{ github.sha }} -f ./docker/Dockerfile . + docker tag ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi-qa:${{ github.sha }} ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi-qa:latest + docker push ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi-qa:${{ github.sha }} + docker push ${{ secrets.REGISTRY_LOGIN_SERVER }}/whatnowapi-qa:latest + + - name: 'Copy staging values file' + run: | + cp ./helm-chart/values-staging.yaml ./helm-chart/values.yaml + + - name: 'Deploy to AKS with Helm' + run: | + helm upgrade --install whatnow-qa ./helm-chart \ + --namespace ${{ secrets.AKS_CLUSTER_NAMESPACE_QA }} \ + --create-namespace