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.

88 lines
2.6 KiB

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