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.

162 lines
4.9 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. name: basket-api
  2. on:
  3. push:
  4. branches:
  5. - master
  6. - dev
  7. - feature/github-actions
  8. paths:
  9. - src/BuildingBlocks/*
  10. - src/Services/Basket/*
  11. - .github/workflows/basket-api.yml
  12. pull_request:
  13. branches:
  14. - master
  15. - dev
  16. env:
  17. REGISTRY_ENDPOINT: borjasanes
  18. REGISTRY_HOST: docker.io
  19. SERVICES: basket-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.SERVICES }}
  28. run: sudo -E docker-compose build ${{ env.SERVICES }}
  29. working-directory: ./src
  30. shell: bash
  31. env:
  32. TAG: ${{ env.BRANCH }}
  33. REGISTRY: ${{ env.REGISTRY_ENDPOINT }}
  34. BuildContainersForPR_Windows:
  35. runs-on: windows-2019
  36. if: ${{ false }}
  37. # if: ${{ github.event_name == 'pull_request' }}
  38. steps:
  39. - name: 'Checkout Github Action'
  40. uses: actions/checkout@master
  41. - name: Compose build ${{ env.SERVICES }}
  42. run: docker-compose build ${{ env.SERVICES }}
  43. working-directory: ./src
  44. shell: pwsh
  45. env:
  46. TAG: ${{ env.branch }}
  47. REGISTRY: ${{ env.REGISTRY_ENDPOINT }}
  48. PLATFORM: win
  49. NODE_IMAGE: stefanscherer/node-windows:10
  50. BuildLinux:
  51. runs-on: ubuntu-latest
  52. if: ${{ github.event_name != 'pull_request' }}
  53. steps:
  54. - name: 'Checkout Github Action'
  55. uses: actions/checkout@master
  56. - name: Login to Container Registry
  57. uses: docker/login-action@v1
  58. with:
  59. registry: ${{ env.REGISTRY_HOST }}
  60. username: ${{ secrets.USERNAME }}
  61. password: ${{ secrets.PASSWORD }}
  62. - name: Set branch name as env variable
  63. run: |
  64. currentbranch=$(echo ${GITHUB_REF##*/})
  65. echo "running on $currentbranch"
  66. echo "BRANCH=$currentbranch" >> $GITHUB_ENV
  67. shell: bash
  68. - name: Compose build ${{ env.SERVICES }}
  69. run: sudo -E docker-compose build ${{ env.SERVICES }}
  70. working-directory: ./src
  71. shell: bash
  72. env:
  73. TAG: ${{ env.BRANCH }}
  74. REGISTRY: ${{ env.REGISTRY_ENDPOINT }}
  75. - name: Compose push ${{ env.SERVICES }}
  76. run: sudo -E docker-compose push ${{ env.SERVICES }}
  77. working-directory: ./src
  78. shell: bash
  79. env:
  80. TAG: ${{ env.BRANCH }}
  81. REGISTRY: ${{ env.REGISTRY_ENDPOINT }}
  82. BuildWindows:
  83. runs-on: windows-2019
  84. if: ${{ false }}
  85. # if: ${{ github.event_name != 'pull_request' }}
  86. steps:
  87. - name: 'Checkout Github Action'
  88. uses: actions/checkout@master
  89. - name: Login to Container Registry
  90. uses: azure/docker-login@v1
  91. with:
  92. login-server: ${{ env.REGISTRY_HOST }}
  93. username: ${{ secrets.USERNAME }}
  94. password: ${{ secrets.PASSWORD }}
  95. - name: Set branch name as env variable
  96. shell: pwsh
  97. run: echo "BRANCH=$($env:GITHUB_REF.replace('refs/heads/', ''))" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
  98. - name: Compose build ${{ env.SERVICES }}
  99. run: docker-compose build ${{ env.SERVICES }}
  100. working-directory: ./src
  101. shell: pwsh
  102. env:
  103. TAG: ${{ env.BRANCH }}
  104. REGISTRY: ${{ env.REGISTRY_ENDPOINT }}
  105. - name: Compose push ${{ env.SERVICES }}
  106. run: docker-compose push ${{ env.SERVICES }}'
  107. working-directory: ./src
  108. shell: pwsh
  109. env:
  110. TAG: ${{ env.BRANCH }}
  111. REGISTRY: ${{ env.REGISTRY_ENDPOINT }}
  112. BuildMultiarch:
  113. env:
  114. DOCKER_CONFIG: $HOME/.docker
  115. runs-on: ubuntu-latest
  116. needs:
  117. - BuildLinux
  118. if: ${{ github.event_name != 'pull_request' }}
  119. steps:
  120. - uses: actions/checkout@v2
  121. - name: Login to Container Registry
  122. uses: docker/login-action@v1
  123. with:
  124. registry: ${{ env.REGISTRY_HOST }}
  125. username: ${{ secrets.USERNAME }}
  126. password: ${{ secrets.PASSWORD }}
  127. - name: Set branch name as env variable
  128. run: |
  129. currentbranch=$(echo ${GITHUB_REF##*/})
  130. echo "running on $currentbranch"
  131. echo "BRANCH=$currentbranch" >> $GITHUB_ENV
  132. shell: bash
  133. - name: Create multiarch manifest
  134. run: |
  135. mkdir -p ~/.docker
  136. sed '$ s/.$//' $DOCKER_CONFIG/config.json > ~/.docker/config.json
  137. echo ',"experimental": "enabled" }' >> ~/.docker/config.json
  138. docker --config ~/.docker manifest create ${{ env.REGISTRY_ENDPOINT }}/${{ env.SERVICES }}:${{ env.BRANCH }} ${{ env.REGISTRY_ENDPOINT }}/${{ env.SERVICES }}:linux-${{ env.BRANCH }}
  139. docker --config ~/.docker manifest create ${{ env.REGISTRY_ENDPOINT }}/${{ env.SERVICES }}:latest ${{ env.REGISTRY_ENDPOINT }}/${{ env.SERVICES }}:linux-latest
  140. docker --config ~/.docker manifest push ${{ env.REGISTRY_ENDPOINT }}/${{ env.SERVICES }}:${{ env.BRANCH }}
  141. docker --config ~/.docker manifest push ${{ env.REGISTRY_ENDPOINT }}/${{ env.SERVICES }}:latest
  142. shell: bash