mirror of
https://github.com/Chia-Network/chia-blockchain.git
synced 2026-08-24 10:05:29 -05:00
* Bump actions/cache from 2.1.6 to 3 Bumps [actions/cache](https://github.com/actions/cache) from 2.1.6 to 3. - [Release notes](https://github.com/actions/cache/releases) - [Commits](https://github.com/actions/cache/compare/v2.1.6...v3) --- updated-dependencies: - dependency-name: actions/cache dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * Update actions in templates also Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Gene Hoffman <hoffmang@hoffmang.com>
239 lines
9.6 KiB
YAML
239 lines
9.6 KiB
YAML
name: Linux .deb installer on Python 3.8
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches:
|
|
- main
|
|
tags:
|
|
- '**'
|
|
pull_request:
|
|
branches:
|
|
- '**'
|
|
|
|
concurrency:
|
|
# SHA is added to the end if on `main` to let all main workflows run
|
|
group: ${{ github.ref }}-${{ github.workflow }}-${{ github.event_name }}-${{ github.ref == 'refs/heads/main' && github.sha || '' }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build:
|
|
name: Linux .deb installer on Python 3.8
|
|
runs-on: ${{ matrix.os }}
|
|
timeout-minutes: 40
|
|
strategy:
|
|
fail-fast: false
|
|
max-parallel: 4
|
|
matrix:
|
|
python-version: [3.8]
|
|
os: [ubuntu-18.04]
|
|
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
submodules: recursive
|
|
|
|
- uses: Chia-Network/actions/git-ssh-to-https@main
|
|
|
|
- name: Cleanup any leftovers that exist from previous runs
|
|
run: bash build_scripts/clean-runner.sh || true
|
|
|
|
- uses: Chia-Network/actions/enforce-semver@main
|
|
if: startsWith(github.ref, 'refs/tags/')
|
|
|
|
- name: Setup Python environment
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
- name: Cache npm
|
|
uses: actions/cache@v3
|
|
env:
|
|
cache-name: cache-node-modules
|
|
with:
|
|
# npm cache files are stored in `~/.npm` on Linux/macOS
|
|
path: ~/.npm
|
|
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-build-${{ env.cache-name }}-
|
|
${{ runner.os }}-build-
|
|
${{ runner.os }}-
|
|
|
|
- name: Get pip cache dir
|
|
id: pip-cache
|
|
run: |
|
|
echo "::set-output name=dir::$(pip cache dir)"
|
|
|
|
- name: Cache pip
|
|
uses: actions/cache@v3
|
|
with:
|
|
# Note that new runners may break this https://github.com/actions/cache/issues/292
|
|
path: ${{ steps.pip-cache.outputs.dir }}
|
|
key: ${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-pip-
|
|
|
|
# Create our own venv outside of the git directory JUST for getting the ACTUAL version so that install can't break it
|
|
- name: Get version number
|
|
id: version_number
|
|
run: |
|
|
python3 -m venv ../venv
|
|
. ../venv/bin/activate
|
|
pip3 install setuptools_scm
|
|
echo "::set-output name=CHIA_INSTALLER_VERSION::$(python3 ./build_scripts/installer-version.py)"
|
|
deactivate
|
|
|
|
- name: Test for secrets access
|
|
id: check_secrets
|
|
shell: bash
|
|
run: |
|
|
unset HAS_SECRET
|
|
if [ -n "$SECRET" ]; then HAS_SECRET='true' ; fi
|
|
echo ::set-output name=HAS_SECRET::${HAS_SECRET}
|
|
env:
|
|
SECRET: "${{ secrets.INSTALLER_UPLOAD_SECRET }}"
|
|
|
|
# Get the most recent release from chia-plotter-madmax
|
|
- uses: actions/github-script@v6
|
|
id: 'latest-madmax'
|
|
with:
|
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
result-encoding: string
|
|
script: |
|
|
const releases = await github.rest.repos.listReleases({
|
|
owner: 'Chia-Network',
|
|
repo: 'chia-plotter-madmax',
|
|
});
|
|
return releases.data[0].tag_name;
|
|
|
|
- name: Get latest madmax plotter
|
|
run: |
|
|
mkdir "$GITHUB_WORKSPACE/madmax"
|
|
wget -O "$GITHUB_WORKSPACE/madmax/chia_plot" https://github.com/Chia-Network/chia-plotter-madmax/releases/download/${{ steps.latest-madmax.outputs.result }}/chia_plot-${{ steps.latest-madmax.outputs.result }}-x86-64
|
|
wget -O "$GITHUB_WORKSPACE/madmax/chia_plot_k34" https://github.com/Chia-Network/chia-plotter-madmax/releases/download/${{ steps.latest-madmax.outputs.result }}/chia_plot_k34-${{ steps.latest-madmax.outputs.result }}-x86-64
|
|
chmod +x "$GITHUB_WORKSPACE/madmax/chia_plot"
|
|
chmod +x "$GITHUB_WORKSPACE/madmax/chia_plot_k34"
|
|
|
|
# Get the most recent release from bladebit
|
|
- uses: actions/github-script@v6
|
|
id: 'latest-bladebit'
|
|
with:
|
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
result-encoding: string
|
|
script: |
|
|
const releases = await github.rest.repos.listReleases({
|
|
owner: 'Chia-Network',
|
|
repo: 'bladebit',
|
|
});
|
|
return releases.data[0].tag_name;
|
|
|
|
- name: Get latest bladebit plotter
|
|
run: |
|
|
mkdir "$GITHUB_WORKSPACE/bladebit"
|
|
wget -O /tmp/bladebit.tar.gz https://github.com/Chia-Network/bladebit/releases/download/${{ steps.latest-bladebit.outputs.result }}/bladebit-${{ steps.latest-bladebit.outputs.result }}-ubuntu-x86-64.tar.gz
|
|
tar -xvzf /tmp/bladebit.tar.gz -C $GITHUB_WORKSPACE/bladebit
|
|
chmod +x "$GITHUB_WORKSPACE/bladebit/bladebit"
|
|
|
|
- name: Run install script
|
|
env:
|
|
INSTALL_PYTHON_VERSION: ${{ matrix.python-version }}
|
|
BUILD_VDF_CLIENT: "N"
|
|
run: |
|
|
sh install.sh
|
|
|
|
- name: Setup Node 16.x
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: '16.x'
|
|
|
|
- name: Add jq
|
|
run: |
|
|
sudo apt-get install -y jq
|
|
|
|
- name: Build .deb package
|
|
run: |
|
|
. ./activate
|
|
ldd --version
|
|
cd ./chia-blockchain-gui
|
|
git status
|
|
cd ../build_scripts
|
|
sh build_linux_deb.sh amd64
|
|
|
|
- name: Upload Linux artifacts
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: Linux-Installers
|
|
path: ${{ github.workspace }}/build_scripts/final_installer/
|
|
|
|
- name: Configure AWS Credentials
|
|
if: steps.check_secrets.outputs.HAS_SECRET
|
|
uses: aws-actions/configure-aws-credentials@v1
|
|
with:
|
|
aws-access-key-id: ${{ secrets.INSTALLER_UPLOAD_KEY }}
|
|
aws-secret-access-key: ${{ secrets.INSTALLER_UPLOAD_SECRET }}
|
|
aws-region: us-west-2
|
|
|
|
- name: Upload to s3
|
|
if: steps.check_secrets.outputs.HAS_SECRET
|
|
env:
|
|
CHIA_INSTALLER_VERSION: ${{ steps.version_number.outputs.CHIA_INSTALLER_VERSION }}
|
|
run: |
|
|
GIT_SHORT_HASH=$(echo "${GITHUB_SHA}" | cut -c1-8)
|
|
CHIA_DEV_BUILD=${CHIA_INSTALLER_VERSION}-$GIT_SHORT_HASH
|
|
echo "CHIA_DEV_BUILD=$CHIA_DEV_BUILD" >>$GITHUB_ENV
|
|
ls ${{ github.workspace }}/build_scripts/final_installer/
|
|
aws s3 cp ${{ github.workspace }}/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_amd64.deb s3://download.chia.net/dev/chia-blockchain_${CHIA_DEV_BUILD}_amd64.deb
|
|
|
|
- name: Create Checksums
|
|
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main'
|
|
env:
|
|
CHIA_INSTALLER_VERSION: ${{ steps.version_number.outputs.CHIA_INSTALLER_VERSION }}
|
|
run: |
|
|
ls ${{ github.workspace }}/build_scripts/final_installer/
|
|
sha256sum ${{ github.workspace }}/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_amd64.deb > ${{ github.workspace }}/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_amd64.deb.sha256
|
|
ls ${{ github.workspace }}/build_scripts/final_installer/
|
|
|
|
- name: Install py3createtorrent
|
|
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main'
|
|
run: |
|
|
pip3 install py3createtorrent
|
|
|
|
- name: Create .deb torrent
|
|
env:
|
|
CHIA_INSTALLER_VERSION: ${{ steps.version_number.outputs.CHIA_INSTALLER_VERSION }}
|
|
if: startsWith(github.ref, 'refs/tags/')
|
|
run: |
|
|
py3createtorrent -f -t udp://tracker.opentrackr.org:1337/announce ${{ github.workspace }}/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_amd64.deb -o ${{ github.workspace }}/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_amd64.deb.torrent --webseed https://download.chia.net/install/chia-blockchain_${CHIA_INSTALLER_VERSION}_amd64.deb
|
|
ls
|
|
|
|
- name: Upload Beta Installer
|
|
if: steps.check_secrets.outputs.HAS_SECRET && github.ref == 'refs/heads/main'
|
|
env:
|
|
CHIA_INSTALLER_VERSION: ${{ steps.version_number.outputs.CHIA_INSTALLER_VERSION }}
|
|
run: |
|
|
aws s3 cp ${{ github.workspace }}/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_amd64.deb s3://download.chia.net/beta/chia-blockchain_amd64_latest_beta.deb
|
|
aws s3 cp ${{ github.workspace }}/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_amd64.deb.sha256 s3://download.chia.net/beta/chia-blockchain_amd64_latest_beta.deb.sha256
|
|
|
|
- name: Upload Release Files
|
|
env:
|
|
CHIA_INSTALLER_VERSION: ${{ steps.version_number.outputs.CHIA_INSTALLER_VERSION }}
|
|
if: steps.check_secrets.outputs.HAS_SECRET && startsWith(github.ref, 'refs/tags/')
|
|
run: |
|
|
aws s3 cp ${{ github.workspace }}/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_amd64.deb s3://download.chia.net/install/
|
|
aws s3 cp ${{ github.workspace }}/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_amd64.deb.sha256 s3://download.chia.net/install/
|
|
aws s3 cp ${{ github.workspace }}/build_scripts/final_installer/chia-blockchain_${CHIA_INSTALLER_VERSION}_amd64.deb.torrent s3://download.chia.net/torrents/
|
|
|
|
- name: Get tag name
|
|
if: startsWith(github.ref, 'refs/tags/')
|
|
id: tag-name
|
|
run: |
|
|
echo "::set-output name=TAG_NAME::$(echo ${{ github.ref }} | cut -d'/' -f 3)"
|
|
echo "::set-output name=REPO_NAME::$(echo ${{ github.repository }} | cut -d'/' -f 2)"
|
|
|
|
- name: Mark installer complete
|
|
if: startsWith(github.ref, 'refs/tags/')
|
|
run: |
|
|
curl -s -XPOST -H "Authorization: Bearer ${{ secrets.GLUE_ACCESS_TOKEN }}" --data '{"chia_ref": "${{ steps.tag-name.outputs.TAG_NAME }}"}' ${{ secrets.GLUE_API_URL }}/api/v1/${{ steps.tag-name.outputs.REPO_NAME }}/${{ steps.tag-name.outputs.TAG_NAME }}/success/build-linux-deb
|