67 lines
2.4 KiB
YAML
67 lines
2.4 KiB
YAML
name: Build
|
|
run-name: Build Docker Image
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
|
|
build:
|
|
|
|
runs-on: ubuntu-20.04
|
|
|
|
steps:
|
|
|
|
- name: Install docker
|
|
uses: papodaca/install-docker-action@main
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Prepare Docker build
|
|
id: prepare
|
|
run: |
|
|
function version { echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }'; }
|
|
|
|
BITCOIN_VERSION='24'
|
|
LATEST_BITCOIN_MAJOR_VERSION=$(find . -type d -maxdepth 1 -not -path '*/\.*' | sort -n | tail -n 1 | cut -c 3-)
|
|
PLATFORMS="linux/amd64"
|
|
PUSH=false
|
|
TAGS='bill/bitcoin-docker:24'
|
|
|
|
echo ::set-output name=build_date::$(date -u +'%Y-%m-%dT%H:%M:%SZ')
|
|
echo ::set-output name=docker_platforms::${PLATFORMS}
|
|
echo ::set-output name=docker_username::${{ gitea.repository_owner }}
|
|
echo ::set-output name=push::${PUSH}
|
|
echo ::set-output name=tags::${TAGS}
|
|
echo ::set-output name=build::true
|
|
|
|
- if: ${{ steps.prepare.outputs.build }} == 'true'
|
|
name: Login into Registry
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ gitea.repository_owner }}
|
|
password: ${{ secrets.REGISTRY_TOKEN }}
|
|
|
|
- if: ${{ steps.prepare.outputs.build }} == 'true'
|
|
name: Build Docker image
|
|
run: |
|
|
TAGS=(${{ steps.prepare.outputs.tags }})
|
|
|
|
echo "Build date: ${{ steps.prepare.outputs.build_date }}"
|
|
echo "Docker platform: ${{ steps.prepare.outputs.docker_platforms }}"
|
|
echo "Push: ${{ steps.prepare.outputs.push }}"
|
|
echo "Tags: ${{ steps.prepare.outputs.tags }}"
|
|
|
|
echo docker buildx build --platform ${{ steps.prepare.outputs.docker_platforms }} \
|
|
--output "type=image,push=${{steps.prepare.outputs.push}}" \
|
|
--progress=plain \
|
|
--build-arg "BUILD_DATE=${{ steps.prepare.outputs.build_date }}" \
|
|
$(printf "%s" "${TAGS[@]/#/ --tag }" )/
|
|
|
|
docker buildx build --platform ${{ steps.prepare.outputs.docker_platforms }} \
|
|
--output "type=image,push=${{steps.prepare.outputs.push}}" \
|
|
--progress=plain \
|
|
--build-arg "BUILD_DATE=${{ steps.prepare.outputs.build_date }}" \
|
|
$(printf "%s" "${TAGS[@]/#/ --tag }" )/ |