Skip to content

Commit

Permalink
Add action to run on pull requests
Browse files Browse the repository at this point in the history
Signed-off-by: Marcelo E. Magallon <marcelo.magallon@grafana.com>
  • Loading branch information
mem committed Dec 5, 2023
1 parent 8b0a961 commit 3e9a5b8
Show file tree
Hide file tree
Showing 6 changed files with 80 additions and 4 deletions.
76 changes: 76 additions & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: "Validate pull request"

on:
pull_request:
branches:
- main
paths:
- Makefile
- Dockerfile
- lib/**
- scripts/**
- .github/workflows/**

workflow_dispatch:

env:
TEST_TAG: grafana/${{ github.repository }}:test

jobs:
validate:
name: Validate pull request
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-tags: true

- name: Unshallow
run: git fetch --prune --tags --unshallow

- name: Describe the current state
run: git describe --tags --always

- name: Docker meta
id: docker_meta
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/${{ github.repository }}
tags: |
type=raw,value=sha-${{ github.sha }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Cache Docker layers
uses: actions/cache@v3
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Login to GitHub Package Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- # This will only build the container image, not publish it
name: Build container image and export to Docker
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
push: false
load: true
tags: ${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max

- name: Test container image
run: |
docker run --rm ghcr.io/${{ github.repository }}:sha-${{ github.sha }} image-test
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ on:
jobs:
publish:
name: Publish container images
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
FROM registry.hub.docker.com/library/golang:1.21.3 as go-build

COPY go.env /usr/local/go
COPY lib/go.env /usr/local/go

RUN env GOBIN=/build go install github.com/google/go-jsonnet/cmd/jsonnet@v0.20.0
RUN env GOBIN=/build go install github.com/google/go-jsonnet/cmd/jsonnetfmt@v0.20.0
Expand Down Expand Up @@ -93,4 +93,4 @@ FROM registry.hub.docker.com/library/debian:stable-slim
# what comes from the image vs stuff coming from the base image.
COPY --from=go-build /build/* /usr/local/bin/

COPY image-test /usr/local/bin
COPY lib/image-test /usr/local/bin
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ First you need to confirm that the image is building and that the changes are pr

Once you confirmed the build passes and the changes are as expected do the following:

1. create a commit with `Makefile`, `Dockerfile` and `image-test` changes.
1. create a commit with `Makefile`, `Dockerfile` and `lib/image-test` changes.
2. push the changes and create a new pull request.

After the PR gets reviewed you need to check all the different places where `grafana-build-tools` is used and update accordingly. Here [`git grep`](http://git-scm.com/docs/git-grep) is your friend:
Expand Down
File renamed without changes.
File renamed without changes.

0 comments on commit 3e9a5b8

Please sign in to comment.