В предыдущей статье упоминалосьnpmПолучите доступ к travis для реализации метода автоматической публикации пакетов npm.В этой статье в основном описывается использование проектов Go, которые в основном делятся на выполнение модульного тестирования и упаковку сборки и доставку в релиз github. Справочник по основным операциям конкретного travisнадВот и все, эта статья охватывает только разные части
модульный тест
В этой статье не описывается, как писать модульные тесты Go.filenamify(библиотека для проверки путей к файлам) в качестве примера. былfilenamify.go
написать тестовые файлыfilenamify_test.go
. просто нужноtracis
выполнить вgo test -v
Вот и все.
# https://github.com/flytam/filenamify/blob/master/.travis.yml
language: go
go:
- 1.13.x
env:
- GO111MODULE=on
script: go test -v
Затем добавьте в проект значок состояния сборки. возьми
Таким образом, каждый раз, когда вы нажимаете на удаленное устройство, CI будет запускаться для автоматического выполнения модульных тестов.релиз github релиз
Иногда наши проекты Go необходимо упаковать в жизнеспособные файлы и выпустить непосредственно в выпуск github, чтобы другие могли их загрузить и выполнить. Вы также можете использоватьtravis
осознать, с помощьюtravis releases
инструмент
1. Создайте новый.travis.yml
файл, заполните базовую среду конфигурации Go
language: go
go:
- 1.13.x
env:
- GO111MODULE=on # 启用Go mod
install:
- go get -v
2. ПишитеMakefile
существуетnodejs
В проекте мы обычно настраиваемnpm run test
команда выполняет тесты, а Go нетnpm
а такжеpackage.json
Эти две вещи должны быть написаны в это времяMakefile
добиться (можно поставитьMakefile
рассматривается как функциональный тип вpackage.json
что-нибудь, просто используйтеmake xxx
выполнить),Makefile
написать можетСсылаться на.
кblog-syncНапример, здесь мне нужно упаковать подходящий файл для всей платформы, поэтомуMakefile
следующим образом
GOCMD=go
GOBUILD=$(GOCMD) build
BINARY_NAME=bin
NAME=blog-sync
#mac
build:
CGO_ENABLED=0 $(GOBUILD) -o $(BINARY_NAME)/$(NAME)-mac
# windows
build-linux:
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 $(GOBUILD) -o $(BINARY_NAME)/$(NAME)-linux
# linux
build-win:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 $(GOBUILD) -o $(BINARY_NAME)/$(NAME)-win.exe
# 全平台
build-all:
make build
make build-win
make build-linux
воплощать в жизньmake build-all
доступны наbin
В каталоге генерируются исполняемые файлы для 3-х платформ.
language: go
go:
- 1.13.x
env:
- GO111MODULE=on # 启用Go mod
install:
- go get -v
before_deploy: make build-all
deploy:
provider: releases
api_key: 自动生成的github key
file_glob: true
file: bin/*
skip_cleanup: true
on:
repo: flytam/blog-sync
tags: true
3. Используйтеsetup
Начальная конфигурация
# 已经安装travis cli
travis setup releases
# 按需填写,输入github账号密码,加密key,发布文件等
После простой настройки окончательная конфигурация выглядит следующим образом:releases
Конфигурация может относиться кДокументация
# https://github.com/flytam/blog-sync/blob/master/.travis.yml
language: go
go:
- 1.13.x
env:
- GO111MODULE=on # 启用Go mod
install:
- go get -v
before_deploy: make build-all # 发布前执行生成二进制文件的命令
deploy:
provider: releases
api_key:
secure: xxxx
# 使用glob匹配发布bin目录下的文件
file_glob: true
file: bin/*
skip_cleanup: true
on:
repo: flytam/blog-sync
# tag才触发发布
tags: true
4. Отпустите
Каждый раз, когда тег помещается в хранилище, он запускает автоматический выпуск исполняемого файла для выпуска github.
git tag 1.0.0
git push --tags
5. Как видите, наш автоматический выпуск сборки прошел успешно.