131 lines
4.7 KiB
YAML
131 lines
4.7 KiB
YAML
on:
|
|
push:
|
|
tags:
|
|
- 'v*' # "v1.2.3"
|
|
|
|
name: Upload Release Asset
|
|
|
|
jobs:
|
|
build-amd64:
|
|
name: AMD64 release asset
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Create release
|
|
id: create_release
|
|
uses: actions/create-release@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
tag_name: ${{ github.ref }}
|
|
release_name: Release ${{ github.ref }}
|
|
draft: true
|
|
prerelease: false
|
|
- name: Checkout code
|
|
uses: actions/checkout@v2
|
|
- name: Build project
|
|
id: make_dist
|
|
run: |
|
|
make dist-amd64
|
|
cd dist
|
|
echo "::set-output name=linux_amd64_archive::"$(echo nimbus-eth2_Linux_amd64_*.tar.gz)
|
|
- name: Upload release asset
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
asset_path: ./dist/${{ steps.make_dist.outputs.linux_amd64_archive }}
|
|
asset_name: ${{ steps.make_dist.outputs.linux_amd64_archive }}
|
|
asset_content_type: application/gzip
|
|
- name: Login to Docker Hub
|
|
uses: docker/login-action@v1
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
- name: Build and push a Docker image for end users
|
|
run: |
|
|
cd dist
|
|
tar -xzf ${{ steps.make_dist.outputs.linux_amd64_archive }}
|
|
mv nimbus-eth2_Linux_amd64_*/ ../docker/dist/binaries/nimbus-eth2
|
|
cd ../docker/dist/binaries
|
|
REFNAME="${{ github.ref }}"
|
|
TAG="${REFNAME#refs/tags/}"
|
|
DOCKER_BUILDKIT=1 docker build -f Dockerfile.amd64 -t statusim/nimbus-eth2:amd64-${TAG} -t statusim/nimbus-eth2:amd64-latest .
|
|
docker push statusim/nimbus-eth2:amd64-${TAG}
|
|
docker push statusim/nimbus-eth2:amd64-latest
|
|
build-arm64:
|
|
name: ARM64 release asset
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Install packages
|
|
env:
|
|
DEBIAN_FRONTEND: "noninteractive"
|
|
TZ: "Etc/UTC"
|
|
run: |
|
|
sudo apt-get -qq update
|
|
sudo apt-get -qq -y install binfmt-support qemu-user-static
|
|
- name: Checkout code
|
|
uses: actions/checkout@v2
|
|
- name: Build project
|
|
id: make_dist
|
|
run: |
|
|
make dist-arm64
|
|
cd dist
|
|
echo "::set-output name=linux_arm64_archive::"$(echo nimbus-eth2_Linux_arm64v8_*.tar.gz)
|
|
- name: Fetch latest release
|
|
id: fetch_release
|
|
uses: InsonusK/get-latest-release@v1.0.1
|
|
with:
|
|
myToken: ${{ github.token }}
|
|
view_top: 1
|
|
- name: Check release version
|
|
run: |
|
|
[[ "refs/tags/${{ steps.fetch_release.outputs.tag_name }}" == "${{ github.ref }}" ]]
|
|
- name: Upload release asset
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: https://uploads.github.com/repos/${{ github.repository }}/releases/${{ steps.fetch_release.outputs.id }}/assets{?name,label}
|
|
asset_path: ./dist/${{ steps.make_dist.outputs.linux_arm64_archive }}
|
|
asset_name: ${{ steps.make_dist.outputs.linux_arm64_archive }}
|
|
asset_content_type: application/gzip
|
|
build-arm:
|
|
name: ARM release asset
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Install packages
|
|
env:
|
|
DEBIAN_FRONTEND: "noninteractive"
|
|
TZ: "Etc/UTC"
|
|
run: |
|
|
sudo apt-get -qq update
|
|
sudo apt-get -qq -y install binfmt-support qemu-user-static
|
|
- name: Checkout code
|
|
uses: actions/checkout@v2
|
|
- name: Build project
|
|
id: make_dist
|
|
run: |
|
|
make dist-arm
|
|
cd dist
|
|
echo "::set-output name=linux_arm_archive::"$(echo nimbus-eth2_Linux_arm32v7_*.tar.gz)
|
|
- name: Fetch latest release
|
|
id: fetch_release
|
|
uses: InsonusK/get-latest-release@v1.0.1
|
|
with:
|
|
myToken: ${{ github.token }}
|
|
view_top: 1
|
|
- name: Check release version
|
|
run: |
|
|
[[ "refs/tags/${{ steps.fetch_release.outputs.tag_name }}" == "${{ github.ref }}" ]]
|
|
- name: Upload release asset
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: https://uploads.github.com/repos/${{ github.repository }}/releases/${{ steps.fetch_release.outputs.id }}/assets{?name,label}
|
|
asset_path: ./dist/${{ steps.make_dist.outputs.linux_arm_archive }}
|
|
asset_name: ${{ steps.make_dist.outputs.linux_arm_archive }}
|
|
asset_content_type: application/gzip
|
|
|