Skip to content

Add arm64 builds

Add arm64 builds #113

Workflow file for this run

# Copyright (c) 2022 MobileCoin Inc.
name: ci
on:
pull_request:
push:
tags:
- 'v*.*.*'
# env:
# PUSH: ${{ github.event_name == 'pull_request' && 'false' || 'true' }}
concurrency:
group: ${{ github.workflow }}
cancel-in-progress: true
jobs:
lint-actions:
runs-on: mco-dev-small-x64
steps:
- name: Lint GitHub Actions
uses: mobilecoinofficial/gh-actions/lint-actions@v0
lint-docker:
runs-on: mco-dev-small-x64
steps:
- name: Lint Dockerfiles with Hadolint
uses: mobilecoinofficial/gh-actions/lint-docker@v0
docker-rust-base:
strategy:
matrix:
runner:
- mco-dev-small-x64
- mco-dev-small-arm64
runs-on: ${{ matrix.runner }}
steps:
- name: Checkout
uses: mobilecoinofficial/gh-actions/checkout@v0
- name: Docker rust-base
id: build
uses: mobilecoinofficial/gh-actions/docker@4e8da3b222fe4dcf5a8d7ad04dd37b1c43c8c7a5
with:
dockerfile: Dockerfile.rust-base
images: mobilecoin/rust-base
outputs: type=image,name=mobilecoin/rust-base,push-by-digest=true,name-canonical=true,push=true
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Export digest
run: |
mkdir -p /tmp/digests
digest="${{ steps.build.outputs.digest }}"
touch "/tmp/digests/${digest#sha256:}"
- name: Upload digest
uses: actions/upload-artifact@v4
with:
name: digests-rust-base-${{ runner.arch }}
path: /tmp/digests/*
if-no-files-found: error
retention-days: 1
docker-rust-base-merge:
runs-on: mco-dev-small-x64
needs:
- docker-rust-base
steps:
- name: Merge and Tag Digests
uses: mobilecoinofficial/gh-actions/docker-merge-digests@8ed6075d8f78f3c63f6836526448c36a20c137d0
with:
digest_artifact_prefix: digests-rust-base
images: mobilecoin/rust-base
flavor: latest=true
tags: |
type=semver,pattern=v{{version}}
type=sha
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
# - name: Download digests
# uses: actions/download-artifact@v4
# with:
# path: /tmp/digests
# pattern: digests-rust-base*
# merge-multiple: true
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3
# - name: Docker meta
# id: meta
# uses: docker/metadata-action@v5
# with:
# images: mobilecoin/rust-base
# tags: |
# type=semver,pattern=v{{version}}
# type=sha
# - name: Login to Docker Hub
# uses: docker/login-action@v3
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
# - name: Create manifest list and push
# shell: bash
# working-directory: /tmp/digests
# run: |
# # Grab the tags from metadata-action ENV with jq
# # Gather all the digests for the images pushed (names of empty files stored as artifacts)
# # Push a manifest (tag) with all the digests to dockerhub
# docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
# $(printf 'mobilecoin/rust-base@sha256:%s ' *)
# docker-rust-sgx:
# needs:
# - docker-rust-base
# runs-on: mco-dev-small-x64
# steps:
# - name: Checkout
# uses: mobilecoinofficial/gh-actions/checkout@v0
# - name: Docker rust-sgx
# uses: mobilecoinofficial/gh-actions/docker@v0
# with:
# flavor: latest=true
# dockerfile: Dockerfile.rust-sgx
# images: mobilecoin/rust-sgx
# tags: |
# type=ref,event=branch
# type=semver,pattern=v{{version}}
# type=semver,pattern=v{{major}}.{{minor}}
# type=semver,pattern=v{{major}}
# type=sha
# push: true
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
# docker-fat-builder:
# needs:
# - docker-rust-base
# strategy:
# matrix:
# runner:
# - mco-dev-small-x64
# - mco-dev-small-arm64
# runs-on: ${{ matrix.runner }}
# steps:
# - name: Checkout
# uses: mobilecoinofficial/gh-actions/checkout@v0
# - name: Docker fat-builder
# uses: mobilecoinofficial/gh-actions/docker@v0
# with:
# flavor: latest=true
# dockerfile: Dockerfile.fat-builder
# images: mobilecoin/fat-builder
# build_args: |
# BASE_IMAGE=rust-base
# tags: |
# type=ref,event=branch
# type=semver,pattern=v{{version}}
# type=semver,pattern=v{{major}}.{{minor}}
# type=semver,pattern=v{{major}}
# type=sha
# push: true
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
# docker-fat-sgx-builder:
# needs:
# - docker-rust-sgx
# runs-on: mco-dev-small-x64
# steps:
# - name: Docker fat-sgx-builder
# uses: mobilecoinofficial/gh-actions/docker@v0
# with:
# flavor: latest=true
# dockerfile: Dockerfile.fat-builder
# images: mobilecoin/fat-sgx-builder
# build_args: |
# BASE_IMAGE=rust-sgx
# tags: |
# type=ref,event=branch
# type=semver,pattern=v{{version}}
# type=semver,pattern=v{{major}}.{{minor}}
# type=semver,pattern=v{{major}}
# type=sha
# push: true
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
# success:
# needs:
# - lint-actions
# - lint-docker
# - docker-rust-base
# - docker-rust-sgx
# - docker-fat-builder
# - docker-fat-sgx-builder
# runs-on: mco-dev-small-x64
# steps:
# - name: Success
# run: echo "All Builds Success"