Skip to content

We don't use DockerHub, we use Github Packages. Remove this login #45

We don't use DockerHub, we use Github Packages. Remove this login

We don't use DockerHub, we use Github Packages. Remove this login #45

Workflow file for this run

on:
push:
branches:
- main
pull_request:
workflow_dispatch:
name: CI
jobs:
test:
runs-on: ubuntu-latest
# Pinned to alpine 3.19 to fix go version to 1.21. Remove this once Sourcegraph is on Go 1.22.
container: alpine:3.19
steps:
- name: checkout
uses: actions/checkout@v3
- name: add dependencies
run: apk add go git
- name: install ctags
run: ./install-ctags-alpine.sh
- name: test
run: go test ./...
fuzz-test:
name: fuzz test
runs-on: ubuntu-latest
steps:
# Pinned a commit to make go version configurable.
# This should be safe to upgrade once this commit is in a released version:
# https://github.com/jidicula/go-fuzz-action/commit/23cc553941669144159507e2cccdbb4afc5b3076
- uses: jidicula/go-fuzz-action@0206b61afc603b665297621fa5e691b1447a5e57
with:
packages: 'github.com/xvandish/zoekt' # This is the package where the Protobuf round trip tests are defined
fuzz-time: 30s
fuzz-minimize-time: 1m
go-version: '1.21'
shellcheck:
name: shellcheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run ShellCheck
uses: ludeeus/[email protected]
shfmt:
name: shfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: reviewdog/[email protected]
with:
filter_mode: "nofilter"
fail_on_error: "true"
shfmt_flags: "-i 2 -ci -bn"
# lint-protos:
# name: "buf lint"
# runs-on: ubuntu-latest
# steps:
# # Run `git checkout`
# - uses: actions/checkout@v2
# # Install the `buf` CLI
# - uses: bufbuild/buf-setup-action@v1
# with:
# github_token: ${{ secrets.GH_TOKEN }}
# # Lint your Protobuf sources
# - run: .github/workflows/buf-lint-check.sh
# format-protos:
# name: "buf format"
# runs-on: ubuntu-latest
# steps:
# # Run `git checkout`
# - uses: actions/checkout@v2
# # Install the `buf` CLI
# - uses: bufbuild/buf-setup-action@v1
# with:
# github_token: ${{ secrets.GH_TOKEN }}
# # Check to see if the Protobuf sources are formatted
# - run: .github/workflows/buf-format-check.sh
# generate-protos:
# name: "buf generate"
# runs-on: ubuntu-latest
# steps:
# # Run `git checkout`
# - uses: actions/checkout@v2
# # Install the `buf` CLI
# - uses: bufbuild/buf-setup-action@v1
# with:
# github_token: ${{ secrets.GH_TOKEN }}
# # Check if the generated code is up-to-date
# - run: .github/workflows/buf-generate-check.sh
# We build a shared docker image called "zoekt". This is not pushed, but is
# used for creating the indexserver and webserver images.
docker:
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
needs:
- "test"
- "shellcheck"
steps:
- name: checkout
uses: actions/checkout@v3
- name: version
id: version
run: .github/workflows/docker-version.sh
- name: docker-meta-webserver
id: meta-webserver
uses: docker/metadata-action@v3
with:
images: |
sourcegraph/zoekt-webserver
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=sha
- name: docker-meta-indexserver
id: meta-indexserver
uses: docker/metadata-action@v3
with:
images: |
sourcegraph/zoekt-indexserver
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=sha
- name: build-zoekt
uses: docker/build-push-action@v4
with:
context: .
tags: "zoekt:latest"
push: "false"
build-args: VERSION=${{ steps.version.outputs.value }}
- name: build-push-webserver
uses: docker/build-push-action@v4
with:
repository: xvandish/zoekt-webserver
tags: ${{ steps.version.outputs.value }},latest
dockerfile: Dockerfile.webserver
add_git_labels: "true"
registry: "ghcr.io"
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: build-push-indexserver
uses: docker/build-push-action@v4
with:
repository: xvandish/zoekt-indexserver
tags: ${{ steps.version.outputs.value }},latest
dockerfile: Dockerfile.indexserver
add_git_labels: "true"
registry: "ghcr.io"
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}