Skip to content

Build docker image for latest release #24

Build docker image for latest release

Build docker image for latest release #24

name: Build docker image for latest release
on:
workflow_dispatch:
inputs:
faucetConfig:
type: choice
required: true
description: Which faucet config to use?
options:
- BOBAGOERLI_FAUCET_CONFIG
- BOBABNBTESTNET_FAUCET_CONFIG
- BOBABNB_FAUCET_CONFIG
- BOBAETH_FAUCET_CONFIG
network:
type: choice
required: true
description: Which network to tag the build for? (99% of the time this equals the faucetConfig)
options:
- bobagoerli
- bobabnbtestnet
- bobabnb
- bobaeth
release:
types: [published]
jobs:
build_docker:
name: Build Docker Image
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_READ_ONLY_USER }}
password: ${{ secrets.DOCKER_HUB_READ_ONLY_TOKEN }}
- name: Get project versions
run: |
echo "server_version=$(cat package.json | jq ".version" | tr -d '"\r\n')" >> $GITHUB_OUTPUT
echo "client_version=$(cat faucet-client/package.json | jq ".version" | tr -d '"\r\n')" >> $GITHUB_OUTPUT
id: version
# override faucet config
- name: Use correct faucet config
shell: bash
run: |
python -c "import os; file = open('faucet-config.yaml', 'w'); file.write(os.environ['FAUCET_CONFIG']); file.close()"
env:
FAUCET_CONFIG: ${{ secrets[inputs.faucetConfig] }}
- name: Build version specific docker image
run: docker build . --file Dockerfile --tag bobanetwork/faucet:v${{ steps.version.outputs.server_version }}-${{ inputs.network }}
- name: Push version specific docker image
run: docker push bobanetwork/faucet:v${{ steps.version.outputs.server_version }}-${{ inputs.network }}
- name: Build v2-stable docker image
run: docker build . --file Dockerfile --tag bobanetwork/faucet:v2-stable-${{ inputs.network }}
- name: Push v2-stable docker image
run: docker push bobanetwork/faucet:v2-stable-${{ inputs.network }}