You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
2.7 KiB

  1. name: payment-api
  2. on:
  3. push:
  4. branches:
  5. - dev
  6. paths:
  7. - src/BuildingBlocks/*
  8. - src/Services/Payment/*
  9. - .github/workflows/payment-api.yml
  10. pull_request:
  11. branches:
  12. - dev
  13. paths:
  14. - src/BuildingBlocks/*
  15. - src/Services/Payment/*
  16. - .github/workflows/payment-api.yml
  17. env:
  18. SERVICE: payment-api
  19. IMAGE: payment.api
  20. jobs:
  21. BuildContainersForPR_Linux:
  22. runs-on: ubuntu-latest
  23. if: ${{ github.event_name == 'pull_request' }}
  24. steps:
  25. - name: 'Checkout Github Action'
  26. uses: actions/checkout@master
  27. - name: Compose build ${{ env.SERVICE }}
  28. run: sudo -E docker-compose build ${{ env.SERVICE }}
  29. working-directory: ./src
  30. shell: bash
  31. env:
  32. TAG: ${{ env.BRANCH }}
  33. REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
  34. BuildLinux:
  35. runs-on: ubuntu-latest
  36. if: ${{ github.event_name != 'pull_request' }}
  37. steps:
  38. - name: 'Checkout Github Action'
  39. uses: actions/checkout@master
  40. - name: Enable experimental features for the Docker daemon and CLI
  41. run: |
  42. echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
  43. mkdir -p ~/.docker
  44. echo $'{\n "experimental": "enabled"\n}' | sudo tee ~/.docker/config.json
  45. sudo service docker restart
  46. docker version -f '{{.Client.Experimental}}'
  47. docker version -f '{{.Server.Experimental}}'
  48. - name: Login to Container Registry
  49. uses: docker/login-action@v1
  50. with:
  51. registry: ${{ secrets.REGISTRY_HOST }}
  52. username: ${{ secrets.USERNAME }}
  53. password: ${{ secrets.PASSWORD }}
  54. - name: Set branch name as env variable
  55. run: |
  56. currentbranch=$(echo ${GITHUB_REF##*/})
  57. echo "running on $currentbranch"
  58. echo "BRANCH=$currentbranch" >> $GITHUB_ENV
  59. shell: bash
  60. - name: Compose build ${{ env.SERVICE }}
  61. run: sudo -E docker-compose build ${{ env.SERVICE }}
  62. working-directory: ./src
  63. shell: bash
  64. env:
  65. TAG: ${{ env.BRANCH }}
  66. REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
  67. - name: Compose push ${{ env.SERVICE }}
  68. run: sudo -E docker-compose push ${{ env.SERVICE }}
  69. working-directory: ./src
  70. shell: bash
  71. env:
  72. TAG: ${{ env.BRANCH }}
  73. REGISTRY: ${{ secrets.REGISTRY_ENDPOINT }}
  74. - name: Create multiarch manifest
  75. run: |
  76. docker --config ~/.docker manifest create ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }} ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:linux-${{ env.BRANCH }}
  77. docker --config ~/.docker manifest push ${{ secrets.REGISTRY_ENDPOINT }}/${{ env.IMAGE }}:${{ env.BRANCH }}
  78. shell: bash