Dockerfile 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. FROM umputun/baseimage:buildgo-latest as build
  2. ARG COVERALLS_TOKEN
  3. ARG CI
  4. ARG TRAVIS
  5. ARG TRAVIS_BRANCH
  6. ARG TRAVIS_COMMIT
  7. ARG TRAVIS_JOB_ID
  8. ARG TRAVIS_JOB_NUMBER
  9. ARG TRAVIS_OS_NAME
  10. ARG TRAVIS_PULL_REQUEST
  11. ARG TRAVIS_PULL_REQUEST_SHA
  12. ARG TRAVIS_REPO_SLUG
  13. ARG TRAVIS_TAG
  14. ARG TRAVIS_BUILD_NUMBER
  15. WORKDIR /go/src/github.com/umputun/rss2twitter
  16. ADD . /go/src/github.com/umputun/rss2twitter
  17. # run tests
  18. RUN cd app && go test ./...
  19. # linters
  20. RUN golangci-lint run --out-format=tab --disable-all --tests=false --enable=interfacer --enable=unconvert --enable=megacheck \
  21. --enable=structcheck --enable=gas --enable=gocyclo --enable=dupl --enable=misspell --enable=maligned --enable=unparam \
  22. --enable=varcheck --enable=deadcode --enable=typecheck --enable=errcheck ./...
  23. # coverage report
  24. RUN mkdir -p target && /script/coverage.sh
  25. # submit coverage to coverals if COVERALLS_TOKEN in env
  26. RUN if [ -z "$COVERALLS_TOKEN" ] ; then \
  27. echo "coverall not enabled" ; \
  28. else goveralls -coverprofile=.cover/cover.out -service=travis-ci -repotoken $COVERALLS_TOKEN || echo "coverall failed!"; fi \
  29. cat .cover/cover.out
  30. RUN \
  31. if [ -z "$TRAVIS" ] ; then \
  32. echo "runs outside of travis" && version=$(/script/git-rev.sh); \
  33. else version=${TRAVIS_BRANCH}-${TRAVIS_BUILD_NUMBER}-${TRAVIS_COMMIT:0:7}-$(date +%Y%m%dT%H:%M:%S); fi && \
  34. echo "version=$version" && \
  35. go build -o rss2twitter -ldflags "-X main.revision=${version} -s -w" ./app
  36. FROM umputun/baseimage:app-latest
  37. COPY --from=build /go/src/github.com/umputun/rss2twitter/rss2twitter /srv/rss2twitter
  38. RUN \
  39. chown -R app:app /srv && \
  40. chmod +x /srv/rss2twitter
  41. WORKDIR /srv
  42. CMD ["/srv/rss2twitter"]
  43. ENTRYPOINT ["/init.sh"]