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 }" )/