name: Main on: push: branches: - master tags: - v* pull_request: jobs: main: name: Main Process runs-on: ubuntu-latest env: GO_VERSION: 1.17 GOLANGCI_LINT_VERSION: v1.43.0 SEIHON_VERSION: v0.8.5 CGO_ENABLED: 0 steps: # https://github.com/marketplace/actions/setup-go-environment - name: Set up Go ${{ env.GO_VERSION }} uses: actions/setup-go@v2 with: go-version: ${{ env.GO_VERSION }} # https://github.com/marketplace/actions/checkout - name: Check out code uses: actions/checkout@v2 with: fetch-depth: 0 # https://github.com/marketplace/actions/cache - name: Cache Go modules uses: actions/cache@v2 with: path: ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- - name: Check and get dependencies run: | go mod tidy git diff --exit-code go.mod git diff --exit-code go.sum # https://golangci-lint.run/usage/install#other-ci - name: Install golangci-lint ${{ env.GOLANGCI_LINT_VERSION }} run: | curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin ${GOLANGCI_LINT_VERSION} golangci-lint --version - name: Make run: make - name: Make Image run: make image # Install Docker image multi-arch builder - name: Install seihon ${{ env.SEIHON_VERSION }} if: startsWith(github.ref, 'refs/tags/v') run: | curl -sSfL https://raw.githubusercontent.com/ldez/seihon/master/godownloader.sh | sh -s -- -b $(go env GOPATH)/bin ${SEIHON_VERSION} seihon --version - name: Docker Login if: startsWith(github.ref, 'refs/tags/v') env: DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} run: | echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin - name: Deploy Docker Images (seihon) if: startsWith(github.ref, 'refs/tags/v') run: make publish-images