Skip to content

Commit

Permalink
initial commit of Dockerfile and GitHub workflows
Browse files Browse the repository at this point in the history
  • Loading branch information
christeredvartsen committed Feb 8, 2024
1 parent 8672b1d commit bb725fe
Show file tree
Hide file tree
Showing 3 changed files with 119 additions and 0 deletions.
63 changes: 63 additions & 0 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Build and push image and chart
on:
push:
branches:
- main
jobs:
build_push:
outputs:
version: ${{ steps.build-push-sign.outputs.version }}
permissions:
contents: read
id-token: write
name: Build and push
runs-on: ubuntu-latest-16-cores
steps:
- uses: actions/checkout@v4
- uses: asdf-vm/actions/setup@v3
- id: asdf-cache
uses: actions/cache@v4
with:
path: ~/.asdf/
key: ${{ runner.os }}-asdf-${{ hashFiles('**/.tool-versions') }}
- uses: asdf-vm/actions/install@v3
if: steps.asdf-cache.outputs.cache-hit != 'true'
with:
before_install: |
asdf install golang latest
asdf global golang latest
- name: Find go cache dir
id: go-cache
run: |
go version
# Clear cache dirs to avoid error when restoring
go clean -cache -modcache
echo "gocache=$(go env GOCACHE)" >> $GITHUB_OUTPUT
echo "gomodcache=$(go env GOMODCACHE)" >> $GITHUB_OUTPUT
- name: Cache go modules
uses: actions/cache@v4
with:
path: |
${{ steps.go-cache.outputs.gocache }}
${{ steps.go-cache.outputs.gomodcache }}
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
- run: go test ./...
# - run: helm lint --strict ./charts
- run: make staticcheck
- run: make vulncheck
- name: Check code format and run code generators
run: |
make fmt
make generate
git diff --exit-code --name-only
- id: go_version
run: echo "go_version=$(asdf current golang | awk '{print $2}')" >> $GITHUB_OUTPUT
- uses: nais/platform-build-push-sign@main
id: build-push-sign
with:
name: api-reconcilers
build_args: |
GO_VERSION=${{ steps.go_version.outputs.go_version }}-
google_service_account: gh-api-reconcilers
workload_identity_provider: ${{ secrets.NAIS_IO_WORKLOAD_IDENTITY_PROVIDER }}
push: true
44 changes: 44 additions & 0 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Check pull request
on: pull_request
jobs:
test:
name: Check pull request
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: asdf-vm/actions/setup@v3
- id: asdf-cache
uses: actions/cache@v4
with:
path: ~/.asdf/
key: ${{ runner.os }}-asdf-${{ hashFiles('**/.tool-versions') }}
- uses: asdf-vm/actions/install@v3
if: steps.asdf-cache.outputs.cache-hit != 'true'
with:
before_install: |
asdf install golang latest
asdf global golang latest
- name: Find go cache dir
id: go-cache
run: |
go version
# Clear cache dirs to avoid error when restoring
go clean -cache -modcache
echo "gocache=$(go env GOCACHE)" >> $GITHUB_OUTPUT
echo "gomodcache=$(go env GOMODCACHE)" >> $GITHUB_OUTPUT
- name: Cache go modules
uses: actions/cache@v4
with:
path: |
${{ steps.go-cache.outputs.gocache }}
${{ steps.go-cache.outputs.gomodcache }}
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
- run: go test ./...
- run: helm lint --strict ./charts
- run: make staticcheck
- run: make vulncheck
- name: Check code format and run code generators
run: |
make fmt
make generate
git diff --exit-code --name-only
12 changes: 12 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
ARG GO_VERSION=""
FROM golang:${GO_VERSION}alpine as builder
WORKDIR /src
COPY go.* /src/
RUN go mod download
COPY . /src
RUN go build -o bin/api-reconcilers ./cmd/api-reconcilers

FROM gcr.io/distroless/base
WORKDIR /app
COPY --from=builder /src/bin/api-reconcilers /app/api-reconcilers
ENTRYPOINT ["/app/api-reconcilers"]

0 comments on commit bb725fe

Please sign in to comment.