version: 2 jobs: lint: docker: - image: golangci/golangci-lint:v1.27.0 steps: - checkout - run: golangci-lint run -v build-node: docker: - image: circleci/node steps: - checkout - run: name: "Build" command: ./wizard.sh -a - run: name: "Cleanup" command: rm -rf frontend/node_modules - persist_to_workspace: root: . paths: - '*' build-go: docker: - image: circleci/golang:1.14.3 steps: - attach_workspace: at: '~/project' - run: name: "Compile" command: GOOS=linux GOARCH=amd64 ./wizard.sh -c - run: name: "Cleanup" command: | rm -rf frontend/build git checkout -- go.sum # TODO: why is it being changed? - persist_to_workspace: root: . paths: - '*' release: docker: - image: circleci/golang:1.14.3 steps: - attach_workspace: at: '~/project' - setup_remote_docker - run: docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD - run: curl -sL https://git.io/goreleaser | bash - run: docker logout workflows: version: 2 build-workflow: jobs: - lint: filters: tags: only: /.*/ - build-node: filters: tags: only: /.*/ - build-go: filters: tags: only: /.*/ requires: - build-node - lint - release: context: deploy requires: - build-go filters: tags: only: /^v.*/ branches: ignore: /.*/