dash/.github/workflows/release_alpha.yml

102 lines
2.8 KiB
YAML
Raw Normal View History

ci: build on-demand docker images for testing on devnets (#4667) * ci: build alpha action * ci: use self-hosted runner * ci: build faster * ci: multicore dash build * chore: copy build, dockerize and push * chore: dockerize build * chore: remove unnecessary cachedir and checkout steps * chore: disable qemu * chore: remove buildx steps now included in AMI * chore: move binaries in to place for second stage copy * fix: runner using incorrect build driver * chore: debug builder info * chore: more detailed debug * chore: install qemu and buildx in actions * fix: indentation * fix: remove debug code * feat: multi-arch cross-compiling dockerfile * chore: remove unnecessary docker layers * chore: add debug output * chore: dump context * fix: use event inputs tag for docker_meta * chore: dump context again * fix: context reference syntax * feat: attempt to use gitian builder * chore: ff changes from other branches * chore: disable macOS build * Revert "chore: ff changes from other branches" This reverts commit daece1c50597e603f4f6027bf93240a0771eb5d3. * chore: restore GHA changes to fix incorrect merge * chore: remove duplicate code * chore: bump buildx version to latest * chore: try to build without signing * chore: setup tmate to find build * chore: run tmate on failure * fix: invalid path to binaries on copy * chore: remove unnecessary GPG steps * chore: replace strophy with dashpay * fix: gha cache not providing speedup * Update .github/workflows/release_alpha.yml Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
2022-04-04 00:24:06 +02:00
name: Build and push image
on:
workflow_dispatch:
inputs:
tag:
description: 'Docker tag'
required: true
jobs:
build:
name: Run Gitian build
runs-on: self-hosted
steps:
- name: Checkout
uses: actions/checkout@v2
with:
path: dash
- name: Checkout Gitian builder
uses: actions/checkout@v2
with:
repository: devrandom/gitian-builder
path: gitian-builder
- name: Checkout detached sigs
uses: actions/checkout@v2
with:
repository: dashpay/dash-detached-sigs
path: dash-detached-sigs
- name: Checkout gitian sigs
uses: actions/checkout@v2
with:
repository: dashpay/gitian.sigs
path: gitian.sigs
- name: Docker meta
id: docker_meta
uses: docker/metadata-action@v3
with:
images: dashpay/dashd
tags: |
type=semver,pattern={{version}},value=${{ github.event.inputs.tag }}
type=raw,value=latest-dev
flavor: |
latest=false
- name: Install apt-cacher-ng
run: sudo DEBIAN_FRONTEND=noninteractive apt-get install -yq apt-cacher-ng
- name: Get branch name
id: branch-name
uses: tj-actions/branch-names@v5
- name: Prepare Gitian
run: dash/contrib/gitian-build.py --setup "dummy" "${{ steps.branch-name.outputs.current_branch }}"
- uses: actions/cache@v3
id: ccache
with:
path: /opt/actions-runner/_work/dash/dash/gitian-builder/cache/dash-linux-0.17
key: ${{ runner.os }}-ccache-${{ github.sha }}
restore-keys: ${{ runner.os }}-ccache-
- name: Run Gitian build
run: |
export GPG_TTY=$(tty)
dash/contrib/gitian-build.py -c -b -n -D -o l \
-u https://github.com/dashpay/dash \
-j $(nproc) -m `awk '/^Mem/ {print $7}' <(free -m)` \
dummy ${{ steps.branch-name.outputs.current_branch }}
- name: Set up QEMU to run multi-arch builds
uses: docker/setup-qemu-action@v1
- name: Set up Docker BuildX
id: buildx
uses: docker/setup-buildx-action@v1
with:
version: v0.8.0
install: true
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push Docker image
id: docker_build
uses: docker/build-push-action@v2
with:
context: ${{ github.workspace }}
file: ./dash/contrib/containers/deploy/Dockerfile.GitHubActions.Gitian
push: true
tags: ${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}
platforms: linux/amd64,linux/arm64
build-args: |
TAG=${{ steps.docker_meta.outputs.version }}
BRANCH=${{ steps.branch-name.outputs.current_branch }}