diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index f7299fc382..56d91b75c4 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -165,55 +165,96 @@ jobs: bucket: windmill-frontend bucket-region: us-east-1 - attach_binary_to_release: - needs: [build] + + attach_amd64_binary_to_release: + needs: [build, build_ee] runs-on: ubuntu-latest if: ${{ startsWith(github.ref, 'refs/tags/') }} + env: + ARCH: amd64 steps: - uses: actions/checkout@v3 + + - run: | + # pulling docker image with desired arch so that actions-docker-extract doesn't do it + docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest + docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:latest + + - run: | + # Checks the image is in docker prior to running actions-docker-extract. It fails if not + # Also useful to visually check that the arch is the right opencontainers + docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest + docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:latest + - uses: shrink/actions-docker-extract@v3 id: extract with: image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest path: "/usr/src/app/windmill" - - name: Rename binary with corresponding architecture - run: | - # The GH worker downloaded the image corresponding to its own architecture - arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; - cd ${{ steps.extract.outputs.destination }}/ - mv windmill "windmill-${arch}" - - - name: Attach binary to release - uses: softprops/action-gh-release@v1 - with: - files: | - ${{ steps.extract.outputs.destination }}/* - - attach_ee_binary_to_release: - needs: [build_ee] - runs-on: ubuntu-latest - if: ${{ startsWith(github.ref, 'refs/tags/') }} - steps: - - uses: actions/checkout@v3 - uses: shrink/actions-docker-extract@v3 - id: extract + id: extract-ee with: image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:latest path: "/usr/src/app/windmill" - name: Rename binary with corresponding architecture run: | - # The GH worker downloaded the image corresponding to its own architecture - arch="$(dpkg --print-architecture)"; arch="${arch##*-}"; - cd ${{ steps.extract.outputs.destination }}/ - mv windmill "windmill-ee-${arch}" + mv "${{ steps.extract.outputs.destination }}/windmill" "${{ steps.extract.outputs.destination }}/windmill-${ARCH}" + mv "${{ steps.extract-ee.outputs.destination }}/windmill" "${{ steps.extract-ee.outputs.destination }}/windmill-ee-${ARCH}" + - name: Attach binary to release uses: softprops/action-gh-release@v1 with: files: | ${{ steps.extract.outputs.destination }}/* + ${{ steps.extract-ee.outputs.destination }}/* + + attach_arm64_binary_to_release: + needs: [build, build_ee] + runs-on: ubuntu-latest + if: ${{ startsWith(github.ref, 'refs/tags/') }} + env: + ARCH: arm64 + steps: + - uses: actions/checkout@v3 + + - run: | + # pulling docker image with desired arch so that actions-docker-extract doesn't do it + docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest + docker pull --platform "linux/$ARCH" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:latest + + - run: | + # Checks the image is in docker prior to running actions-docker-extract. It fails if not + # Also useful to visually check that the arch is the right opencontainers + docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest + docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:latest + + - uses: shrink/actions-docker-extract@v3 + id: extract + with: + image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest + path: "/usr/src/app/windmill" + + - uses: shrink/actions-docker-extract@v3 + id: extract-ee + with: + image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-ee:latest + path: "/usr/src/app/windmill" + + - name: Rename binary with corresponding architecture + run: | + mv "${{ steps.extract.outputs.destination }}/windmill" "${{ steps.extract.outputs.destination }}/windmill-${ARCH}" + mv "${{ steps.extract-ee.outputs.destination }}/windmill" "${{ steps.extract-ee.outputs.destination }}/windmill-ee-${ARCH}" + + + - name: Attach binary to release + uses: softprops/action-gh-release@v1 + with: + files: | + ${{ steps.extract.outputs.destination }}/* + ${{ steps.extract-ee.outputs.destination }}/* publish_ecr: needs: [build_ee]