diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index de652f8..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,57 +0,0 @@ -version: 2 -jobs: - build_latest: - docker: - - image: circleci/golang:1.17 - working_directory: ~/twhelpcron - steps: - - checkout - - setup_remote_docker - # start proprietary DB using private Docker image - # with credentials stored in the UI - - run: | - docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD - # build the cron image - - run: docker build -f cmd/cron/Dockerfile -t $DOCKER_LOGIN/twhelp-cron:latest . - # build the data updater image - - run: docker build -f cmd/dataupdater/Dockerfile -t $DOCKER_LOGIN/twhelp-dataupdater:latest . - # deploy the images - - run: docker push $DOCKER_LOGIN/twhelp-cron:latest - - run: docker push $DOCKER_LOGIN/twhelp-dataupdater:latest - build_version: - docker: - - image: circleci/golang:1.17 - working_directory: ~/twhelpcron - steps: - - checkout - - setup_remote_docker - # start proprietary DB using private Docker image - # with credentials stored in the UI - - run: | - docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD - # build the cron image - - run: docker build -f cmd/cron/Dockerfile -t $DOCKER_LOGIN/twhelp-cron:$(echo $CIRCLE_TAG | sed -r 's/^.{1}//') . - # build the data updater image - - run: docker build -f cmd/dataupdater/Dockerfile -t $DOCKER_LOGIN/twhelp-dataupdater:$(echo $CIRCLE_TAG | sed -r 's/^.{1}//') . - # deploy the images - - run: docker push $DOCKER_LOGIN/twhelp-cron:$(echo $CIRCLE_TAG | sed -r 's/^.{1}//') - - run: docker push $DOCKER_LOGIN/twhelp-dataupdater:$(echo $CIRCLE_TAG | sed -r 's/^.{1}//') -workflows: - version: 2 - deploy_latest: - jobs: - - build_latest: - context: TWHelp - filters: - branches: - only: - - master - deploy_version: - jobs: - - build_version: - context: TWHelp - filters: - tags: - only: /^v.*/ - branches: - ignore: /.*/ diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..aef08cb --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,60 @@ +name: Build and push to registry + +on: + push: + tags: + - '*' + +jobs: + push_to_registry: + name: Push Docker image to Docker Hub + if: startsWith(github.ref, 'refs/tags/v') + runs-on: ubuntu-latest + steps: + - name: Check out the repo + uses: actions/checkout@v2 + + - name: Get the version + id: get_version + run: echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/v} + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Cache Docker layers + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.REGISTRY_LOGIN }} + password: ${{ secrets.REGISTRY_PASSWORD }} + + - name: Push dataupdater to Docker Hub + uses: docker/build-push-action@v2 + with: + context: . + build-args: | + VERSION=${{ steps.get_version.outputs.VERSION }} + tags: | + ${{ secrets.REGISTRY_NAME }}/twhelp-dataupdater:latest + ${{ secrets.REGISTRY_NAME }}/twhelp-dataupdater:${{ steps.get_version.outputs.VERSION }} + file: ./build/dataupdater/Dockerfile + push: true + + - name: Push cron to Docker Hub + uses: docker/build-push-action@v2 + with: + context: . + build-args: | + VERSION=${{ steps.get_version.outputs.VERSION }} + tags: | + ${{ secrets.REGISTRY_NAME }}/twhelp-cron:latest + ${{ secrets.REGISTRY_NAME }}/twhelp-cron:${{ steps.get_version.outputs.VERSION }} + file: ./build/cron/Dockerfile + push: true diff --git a/cmd/cron/Dockerfile b/build/cron/Dockerfile similarity index 90% rename from cmd/cron/Dockerfile rename to build/cron/Dockerfile index be47ad2..83c6982 100644 --- a/cmd/cron/Dockerfile +++ b/build/cron/Dockerfile @@ -17,7 +17,7 @@ RUN go build -o twcron ./cmd/cron ######## Start a new stage from scratch ####### FROM alpine:latest -RUN apk --no-cache add ca-certificates +RUN apk --no-cache add ca-certificates tzdata WORKDIR /root/ @@ -27,6 +27,4 @@ COPY --from=builder /app/twcron . ENV APP_MODE=production EXPOSE 8080 -RUN apk add --no-cache tzdata - CMD ./twcron diff --git a/cmd/dataupdater/Dockerfile b/build/dataupdater/Dockerfile similarity index 90% rename from cmd/dataupdater/Dockerfile rename to build/dataupdater/Dockerfile index fde64d0..c53e850 100644 --- a/cmd/dataupdater/Dockerfile +++ b/build/dataupdater/Dockerfile @@ -17,7 +17,7 @@ RUN go build -o twdataupdater ./cmd/dataupdater ######## Start a new stage from scratch ####### FROM alpine:latest -RUN apk --no-cache add ca-certificates +RUN apk --no-cache add ca-certificates tzdata WORKDIR /root/ @@ -27,6 +27,4 @@ COPY --from=builder /app/twdataupdater . ENV APP_MODE=production EXPOSE 8080 -RUN apk add --no-cache tzdata - CMD ./twdataupdater