version: 2 jobs: lint: docker: - image: golangci/golangci-lint:v1.31.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: - '*' test: docker: - image: circleci/golang:1.15.2 steps: - checkout - run: name: "Test" command: go test ./... build-go: docker: - image: circleci/golang:1.15.2 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.15.2 steps: - attach_workspace: at: '~/project' - setup_remote_docker - run: echo $DOCKER_PASSWORD | docker login --username $DOCKER_USERNAME --password-stdin - run: curl -sL https://git.io/goreleaser | bash - run: docker logout workflows: version: 2 build-workflow: jobs: - lint: filters: tags: only: /.*/ - test: filters: tags: only: /.*/ - build-node: filters: tags: only: /.*/ - build-go: filters: tags: only: /.*/ requires: - build-node - lint - test - release: context: deploy requires: - build-go filters: tags: only: /^v.*/ branches: ignore: /.*/