Skip to content

Commit

Permalink
Move docker image build to github actions
Browse files Browse the repository at this point in the history
  • Loading branch information
r-ash committed Jul 12, 2024
1 parent 93a24f3 commit 37b6dda
Show file tree
Hide file tree
Showing 7 changed files with 97 additions and 22 deletions.
1 change: 1 addition & 0 deletions .github/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.html
92 changes: 92 additions & 0 deletions .github/workflows/docker.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: Build Docker Image

on:
push:
branches: [main, master]
pull_request:
branches: [main, master]

env:
TAG_LOADBALANCER: mrcide/hintr-loadbalancer
TAG_LOADBALANCER_GHCR: mrc-ide/hintr-loadbalancer

jobs:
docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- id: extract_branch
name: Setup Environment
shell: bash
run: |
if [ "${{github.event_name}}" = "pull_request" ];
then
LONG_SHA=${{ github.event.pull_request.head.sha }}
echo "CI_BRANCH=${{ github.head_ref }}" >> $GITHUB_OUTPUT
else
LONG_SHA=${GITHUB_SHA}
echo "CI_BRANCH=${{ github.ref_name }}" >> $GITHUB_OUTPUT
fi
echo "CI_SHA=${LONG_SHA:0:7}" >> $GITHUB_OUTPUT
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Login to GHCR (GitHub Packages)
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build dev loadbalancer container
uses: docker/build-push-action@v6
if: github.event_name == 'pull_request'
with:
load: true
tags: |
${{env.TAG_LOADBALANCER}}:${{steps.extract_branch.outputs.CI_BRANCH}}
ghcr.io/${{env.TAG_LOADBALANCER_GHCR}}:${{steps.extract_branch.outputs.CI_BRANCH}}
- name: Build prod loadbalancer container
uses: docker/build-push-action@v6
if: github.event_name != 'pull_request'
with:
load: true
tags: |
${{env.TAG_LOADBALANCER}}:latest
${{env.TAG_LOADBALANCER}}:${{steps.extract_branch.outputs.CI_BRANCH}}
ghcr.io/${{env.TAG_LOADBALANCER_GHCR}}:latest
ghcr.io/${{env.TAG_LOADBALANCER_GHCR}}:${{steps.extract_branch.outputs.CI_BRANCH}}
- name: Test loadbalancer container
run: ./test
env:
TAG_BRANCH: ${{env.TAG_LOADBALANCER}}:${{steps.extract_branch.outputs.CI_BRANCH}}

- name: Push dev loadbalancer container
uses: docker/build-push-action@v6
if: github.event_name == 'pull_request'
with:
push: true
tags: |
${{env.TAG_LOADBALANCER}}:${{steps.extract_branch.outputs.CI_BRANCH}}
ghcr.io/${{env.TAG_LOADBALANCER_GHCR}}:${{steps.extract_branch.outputs.CI_BRANCH}}
- name: Push prod loadbalancer container
uses: docker/build-push-action@v6
if: github.event_name != 'pull_request'
with:
push: true
tags: |
${{env.TAG_LOADBALANCER}}:latest
${{env.TAG_LOADBALANCER}}:${{steps.extract_branch.outputs.CI_BRANCH}}
ghcr.io/${{env.TAG_LOADBALANCER_GHCR}}:latest
ghcr.io/${{env.TAG_LOADBALANCER_GHCR}}:${{steps.extract_branch.outputs.CI_BRANCH}}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.idea
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ RUN apt-get update && apt-get install -y \
jq

COPY bin /usr/local/bin
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg
14 changes: 0 additions & 14 deletions buildkite/pipeline.yml

This file was deleted.

2 changes: 1 addition & 1 deletion haproxy.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,5 @@ userlist haproxy-dataplaneapi
user admin insecure-password mypassword

program api
command /usr/bin/dataplaneapi --host 0.0.0.0 --port 5555 --haproxy-bin /usr/sbin/haproxy --config-file /usr/local/etc/haproxy/haproxy.cfg --reload-cmd "kill -SIGUSR2 1" --reload-delay 5 --userlist haproxy-dataplaneapi
command /usr/bin/dataplaneapi --host 0.0.0.0 --port 5555 --haproxy-bin /usr/sbin/haproxy --config-file /usr/local/etc/haproxy/haproxy.cfg --reload-cmd "kill -SIGUSR2 1" --reload-delay 5 --restart-cmd "kill -SIGUSR2 1" --userlist haproxy-dataplaneapi
no option start-on-reload
7 changes: 1 addition & 6 deletions test
Original file line number Diff line number Diff line change
@@ -1,10 +1,5 @@
#!/usr/bin/env bash
set -ex
HERE=$(dirname $0)
. $HERE/common

# In case we switch agents between steps or tag has been updated
docker pull $TAG_SHA

NAME_NETWORK=hintr_network
NAME_LOADBALANCER=hintr_loadbalancer
Expand Down Expand Up @@ -34,7 +29,7 @@ docker run --rm -d --network=$NAME_NETWORK \
docker run --rm -d --network=$NAME_NETWORK \
-p 8888:8888 \
--name $NAME_LOADBALANCER \
$TAG_SHA
"$TAG_BRANCH"

## Data API is running
sleep 2
Expand Down

0 comments on commit 37b6dda

Please sign in to comment.