Skip to content

Bump version

Bump version #2310

Workflow file for this run

name: ci
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
services:
mongodb:
image: mongo:4
ports: ['27017:27017']
redis:
image: redis
ports: ['6379:6379']
steps:
- uses: actions/setup-go@v2
with:
go-version: '1.20'
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/cache@v2
with:
path: |
~/go/pkg/mod
~/.cache/go-build
key: ${{ runner.os }}-gorace-${{ hashFiles('**/go.sum') }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-gorace-${{ hashFiles('**/go.sum') }}-
${{ runner.os }}-gorace-
# This magic line is to restore the timestamps (mtime) for each file based
# on the its last commit. This allows Go test cache to reuse results for
# tests that depend on fixture files.
- run: git ls-tree -r -t --full-name --name-only HEAD | grep -v vendor | xargs -I{} -P4 sh -c 'touch -d $(git log --pretty=format:%cI -1 HEAD -- "{}") "{}"'
- run: sudo apt-get update && sudo apt-get install -y xmlsec1
- run: go test -race ./...
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v3
with:
go-version: '1.20'
- uses: actions/checkout@v2
- run: make yamllint
- uses: golangci/golangci-lint-action@v3
with:
version: v1.52.2
env:
GOROOT: ''
check-contributors:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: ./misc/check-contributors.sh
leakdetector:
runs-on: ubuntu-latest
services:
mongodb:
image: mongo:4
ports: ['27017:27017']
redis:
image: redis
ports: ['6379:6379']
steps:
- uses: actions/setup-go@v2
with:
go-version: '1.20'
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/cache@v2
with:
path: |
~/go/pkg/mod
~/.cache/go-build
key: ${{ runner.os }}-goleak-${{ hashFiles('**/go.sum') }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-goleak-${{ hashFiles('**/go.sum') }}-
${{ runner.os }}-goleak-
- run: git ls-tree -r -t --full-name --name-only HEAD | grep -v vendor | xargs -I{} -P4 sh -c 'touch -d $(git log --pretty=format:%cI -1 HEAD -- "{}") "{}"'
- run: sudo apt-get update && sudo apt-get install -y xmlsec1
- run: make leakdetector
check-handlers:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v2
with:
go-version: '1.20'
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- run: ./misc/check-handlers.sh
check-events:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v2
with:
go-version: '1.20'
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- run: ./misc/check-events.sh
check-api-doc:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v2
with:
go-version: '1.20'
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- run: make check-api-doc
validate-api-spec:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v2
with:
go-version: '1.20'
- uses: actions/checkout@v2
- run: make validate-api-spec
verify-codegen:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v2
with:
go-version: '1.20'
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- run: go install golang.org/x/tools/cmd/goimports@latest
- run: ./hack/verify-codegen.sh
docker-image:
needs:
- test
- lint
- check-contributors
- leakdetector
- check-handlers
- check-events
- check-api-doc
- validate-api-spec
- verify-codegen
runs-on: ubuntu-latest
if: github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v2
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
- uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- uses: Surgo/docker-smart-tag-action@v1
id: smarttag
with:
docker_image: tsuru/api
default_branch: main
tag_with_sha: 'true'
- uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- uses: docker/build-push-action@v2
with:
context: .
push: true
tags: ${{ steps.smarttag.outputs.tag }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
platforms: linux/amd64,linux/arm64
publish-release:
needs: [docker-image]
runs-on: ubuntu-latest
if: github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/')
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: goreleaser/goreleaser-action@v2
with:
args: release --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
publish-openapi-specs:
if: github.event_name != 'pull_request' && github.ref == format('refs/heads/{0}', github.event.repository.default_branch)
needs: [validate-api-spec]
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v3
- name: Install SwaggerHub CLI
run: |-
npm install -g [email protected]
swaggerhub version
- name: yq - portable yaml processor
uses: mikefarah/[email protected]
- uses: actions/checkout@v3
- name: Update OpenAPI specs on SwaggerHub
run: ./misc/swaggerhub-update-api-specs.sh
env:
SWAGGERHUB_API_KEY: ${{ secrets.SWAGGERHUB_API_KEY }}