diff --git a/.github/workflows/pre-release.yaml b/.github/workflows/pre-release.yaml new file mode 100644 index 0000000..8bd2a69 --- /dev/null +++ b/.github/workflows/pre-release.yaml @@ -0,0 +1,31 @@ +--- +name: "pre-release" + +on: + push: + branches: + - "master" + +jobs: + pre-release-docker: + name: "Pre Release Docker" + runs-on: "ubuntu-latest" + + steps: + - uses: docker/setup-qemu-action@v1 + + - uses: docker/setup-buildx-action@v1 + + - uses: docker/login-action@v1 + with: + username: "${{ secrets.DOCKER_HUB_USER }}" + password: "${{ secrets.DOCKER_HUB_TOKEN }}" + + - name: "Build and push docker image" + uses: docker/build-push-action@v2 + with: + context: . + file: ./Dockerfile + platforms: linux/amd64,linux/arm/v7,linux/arm64 + push: true + tags: "${{ secrets.DOCKER_REPO }}:latest" diff --git a/Dockerfile b/Dockerfile index 565e142..bd4b7dc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,20 @@ -FROM golang:1.16 +FROM node:16 as js-build +WORKDIR /gotty +COPY js /gotty/js +COPY Makefile /gotty/ +RUN make bindata/static/js/gotty.js.map +FROM golang:1.16 as go-build WORKDIR /gotty COPY . /gotty +COPY --from=js-build /gotty/js/node_modules /gotty/js/node_modules +COPY --from=js-build /gotty/bindata/static/js /gotty/bindata/static/js RUN CGO_ENABLED=0 make FROM alpine:latest - RUN apk update && \ apk upgrade && \ - apk --no-cache add ca-certificates && \ - apk add bash + apk --no-cache add ca-certificates bash WORKDIR /root -COPY --from=0 /gotty/gotty /usr/bin/ +COPY --from=go-build /gotty/gotty /usr/bin/ CMD ["gotty", "-w", "bash"]