Build - Release #21
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build - Release | |
on: | |
workflow_dispatch: | |
release: | |
types: [published] | |
env: | |
BUILD_VERSION: latest # Computed | |
DOCKER_HUB_USER: defi | |
MAKE_DEBUG: 0 | |
GIT_VERSION: 1 | |
jobs: | |
linux-x64: | |
runs-on: ubuntu-latest | |
if: startsWith(github.ref, 'refs/tags/') | |
env: | |
TARGET: x86_64-pc-linux-gnu | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Populate environment | |
run: ./make.sh ci-export-vars | |
- name: Build and package | |
run: ./make.sh docker-release | |
- name: Publish artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: defichain-${{ env.BUILD_VERSION }}-x86_64-pc-linux-gnu | |
path: ./build/defichain-${{ env.BUILD_VERSION }}-x86_64-pc-linux-gnu.tar.gz | |
- name: Login to Docker Hub | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ env.DOCKER_HUB_USER }} | |
password: ${{ secrets.DOCKER_HUB_TOKEN }} | |
- name: Push to Docker Hub | |
run: | | |
set -e; ver=${{ env.BUILD_VERSION }} | |
for tag in $(echo $ver latest); do | |
docker tag defichain-x86_64-pc-linux-gnu:${ver} defi/defichain:${tag} | |
done | |
docker push defi/defichain:${ver} | |
linux-aarch64: | |
runs-on: ubuntu-latest | |
if: startsWith(github.ref, 'refs/tags/') | |
env: | |
TARGET: aarch64-linux-gnu | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Populate environment | |
run: ./make.sh ci-export-vars | |
- name: Build and package | |
run: ./make.sh docker-release | |
- name: Publish artifact - aarch64-linux-gnu | |
uses: actions/upload-artifact@v3 | |
with: | |
name: defichain-${{ env.BUILD_VERSION }}-aarch64-linux-gnu | |
path: ./build/defichain-${{ env.BUILD_VERSION }}-aarch64-linux-gnu.tar.gz | |
win-x64: | |
runs-on: ubuntu-latest | |
if: startsWith(github.ref, 'refs/tags/') | |
env: | |
TARGET: x86_64-w64-mingw32 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Populate environment | |
run: ./make.sh ci-export-vars | |
- name: Build and package | |
run: ./make.sh docker-release | |
- name: Publish artifact - x86_64-w64-mingw32 | |
uses: actions/upload-artifact@v3 | |
with: | |
name: defichain-${{ env.BUILD_VERSION }}-x86_64-w64-mingw32 | |
path: ./build/defichain-${{ env.BUILD_VERSION }}-x86_64-w64-mingw32.tar.gz | |
osx-x64: | |
runs-on: ubuntu-latest | |
if: startsWith(github.ref, 'refs/tags/') | |
env: | |
TARGET: x86_64-apple-darwin | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Populate environment | |
run: ./make.sh ci-export-vars | |
- name: Build and package | |
run: ./make.sh docker-release | |
- name: Publish artifact - x86_64-apple-darwin | |
uses: actions/upload-artifact@v3 | |
with: | |
name: defichain-${{ env.BUILD_VERSION }}-x86_64-apple-darwin | |
path: ./build/defichain-${{ env.BUILD_VERSION }}-x86_64-apple-darwin.tar.gz | |
osx-aarch64: | |
runs-on: ubuntu-latest | |
if: startsWith(github.ref, 'refs/tags/') | |
env: | |
TARGET: aarch64-apple-darwin | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Populate environment | |
run: ./make.sh ci-export-vars | |
- name: Build and package | |
run: ./make.sh docker-release | |
- name: Publish artifact - aarch64-apple-darwin | |
uses: actions/upload-artifact@v3 | |
with: | |
name: defichain-${{ env.BUILD_VERSION }}-aarch64-apple-darwin | |
path: ./build/defichain-${{ env.BUILD_VERSION }}-aarch64-apple-darwin.tar.gz | |
create-release: | |
needs: | |
- linux-x64 | |
- linux-aarch64 | |
- win-x64 | |
- osx-x64 | |
- osx-aarch64 | |
runs-on: ubuntu-latest | |
if: startsWith(github.ref, 'refs/tags/') | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Populate environment | |
run: ./make.sh ci-export-vars | |
- name: Cleanup work dir | |
run: rm -rf * | |
- name: Get artifacts | |
uses: actions/download-artifact@v3 | |
- name: zip package for win-x64 | |
run: | | |
set -e; ver=${{ env.BUILD_VERSION }} | |
cd defichain-${ver}-x86_64-w64-mingw32 | |
tar xzf defichain-${ver}-x86_64-w64-mingw32.tar.gz | |
zip -r "defichain-${ver}-x86_64-w64-mingw32.zip" defichain-${ver}/ | |
- name: Get release | |
id: get_release | |
uses: bruceadams/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Generate SHA256 checksum | |
run: | | |
set -e; ver=${{ env.BUILD_VERSION }} | |
(cd ./defichain-${ver}-x86_64-pc-linux-gnu | |
sha256sum ./defichain-${ver}-x86_64-pc-linux-gnu.tar.gz > ./defichain-${ver}-x86_64-pc-linux-gnu.tar.gz.SHA256) | |
(cd ./defichain-${ver}-aarch64-linux-gnu | |
sha256sum ./defichain-${ver}-aarch64-linux-gnu.tar.gz > ./defichain-${ver}-aarch64-linux-gnu.tar.gz.SHA256) | |
(cd ./defichain-${ver}-x86_64-w64-mingw32 | |
sha256sum ./defichain-${ver}-x86_64-w64-mingw32.zip > ./defichain-${ver}-x86_64-w64-mingw32.zip.SHA256) | |
(cd ./defichain-${ver}-x86_64-apple-darwin | |
sha256sum ./defichain-${ver}-x86_64-apple-darwin.tar.gz > ././defichain-${ver}-x86_64-apple-darwin.tar.gz.SHA256) | |
(cd ./defichain-${ver}-aarch64-apple-darwin | |
sha256sum ./defichain-${ver}-aarch64-apple-darwin.tar.gz > ././defichain-${ver}-aarch64-apple-darwin.tar.gz.SHA256) | |
- name: Upload release asset - linux-x64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.get_release.outputs.upload_url }} | |
asset_path: ./defichain-${{ env.BUILD_VERSION }}-x86_64-pc-linux-gnu/defichain-${{ env.BUILD_VERSION }}-x86_64-pc-linux-gnu.tar.gz | |
asset_name: defichain-${{ env.BUILD_VERSION }}-x86_64-pc-linux-gnu.tar.gz | |
asset_content_type: application/gzip | |
- name: Upload checksum - linux-x64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.get_release.outputs.upload_url }} | |
asset_path: ./defichain-${{ env.BUILD_VERSION }}-x86_64-pc-linux-gnu/defichain-${{ env.BUILD_VERSION }}-x86_64-pc-linux-gnu.tar.gz.SHA256 | |
asset_name: defichain-${{ env.BUILD_VERSION }}-x86_64-pc-linux-gnu.tar.gz.SHA256 | |
asset_content_type: text/plain | |
- name: Upload release asset - linux-aarch64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.get_release.outputs.upload_url }} | |
asset_path: ./defichain-${{ env.BUILD_VERSION }}-aarch64-linux-gnu/defichain-${{ env.BUILD_VERSION }}-aarch64-linux-gnu.tar.gz | |
asset_name: defichain-${{ env.BUILD_VERSION }}-aarch64-linux-gnu.tar.gz | |
asset_content_type: application/gzip | |
- name: Upload checksum - linux-aarch64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.get_release.outputs.upload_url }} | |
asset_path: ./defichain-${{ env.BUILD_VERSION }}-aarch64-linux-gnu/defichain-${{ env.BUILD_VERSION }}-aarch64-linux-gnu.tar.gz.SHA256 | |
asset_name: defichain-${{ env.BUILD_VERSION }}-aarch64-linux-gnu.tar.gz.SHA256 | |
asset_content_type: text/plain | |
- name: Upload release asset - win-x64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.get_release.outputs.upload_url }} | |
asset_path: ./defichain-${{ env.BUILD_VERSION }}-x86_64-w64-mingw32/defichain-${{ env.BUILD_VERSION }}-x86_64-w64-mingw32.zip | |
asset_name: defichain-${{ env.BUILD_VERSION }}-x86_64-w64-mingw32.zip | |
asset_content_type: application/zip | |
- name: Upload checksum asset - win-x64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.get_release.outputs.upload_url }} | |
asset_path: ./defichain-${{ env.BUILD_VERSION }}-x86_64-w64-mingw32/defichain-${{ env.BUILD_VERSION }}-x86_64-w64-mingw32.zip.SHA256 | |
asset_name: defichain-${{ env.BUILD_VERSION }}-x86_64-w64-mingw32.zip.SHA256 | |
asset_content_type: text/plain | |
- name: Upload release asset - osx-x64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.get_release.outputs.upload_url }} | |
asset_path: ./defichain-${{ env.BUILD_VERSION }}-x86_64-apple-darwin/defichain-${{ env.BUILD_VERSION }}-x86_64-apple-darwin.tar.gz | |
asset_name: defichain-${{ env.BUILD_VERSION }}-x86_64-apple-darwin.tar.gz | |
asset_content_type: application/gzip | |
- name: Upload checksum asset - osx-x64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.get_release.outputs.upload_url }} | |
asset_path: ./defichain-${{ env.BUILD_VERSION }}-x86_64-apple-darwin/defichain-${{ env.BUILD_VERSION }}-x86_64-apple-darwin.tar.gz.SHA256 | |
asset_name: defichain-${{ env.BUILD_VERSION }}-x86_64-apple-darwin.tar.gz.SHA256 | |
asset_content_type: text/plain | |
- name: Upload release asset - osx-aarch64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.get_release.outputs.upload_url }} | |
asset_path: ./defichain-${{ env.BUILD_VERSION }}-aarch64-apple-darwin/defichain-${{ env.BUILD_VERSION }}-aarch64-apple-darwin.tar.gz | |
asset_name: defichain-${{ env.BUILD_VERSION }}-aarch64-apple-darwin.tar.gz | |
asset_content_type: application/gzip | |
- name: Upload checksum asset - osx-aarch64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.get_release.outputs.upload_url }} | |
asset_path: ./defichain-${{ env.BUILD_VERSION }}-aarch64-apple-darwin/defichain-${{ env.BUILD_VERSION }}-aarch64-apple-darwin.tar.gz.SHA256 | |
asset_name: defichain-${{ env.BUILD_VERSION }}-aarch64-apple-darwin.tar.gz.SHA256 | |
asset_content_type: text/plain |