CI: nightly build workflow
This commit is contained in:
parent
8b15c5d75f
commit
a2cbcff89c
|
@ -0,0 +1,308 @@
|
||||||
|
name: Nightly build
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: "45 4 * * *"
|
||||||
|
workflow_dispatch:
|
||||||
|
#pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-amd64:
|
||||||
|
name: Linux AMD64 release asset
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
ref: unstable
|
||||||
|
|
||||||
|
- name: Build project
|
||||||
|
id: make_dist
|
||||||
|
run: |
|
||||||
|
make dist-amd64
|
||||||
|
cd dist
|
||||||
|
ARCHIVE=$(echo *.tar.gz)
|
||||||
|
tar -xzf ${ARCHIVE}
|
||||||
|
NEW_ARCHIVE_DIR="nimbus-eth2_Linux_amd64_$(date +%Y%m%d)_$(git rev-parse --short=8 HEAD)"
|
||||||
|
mv ${ARCHIVE%.tar.gz} ${NEW_ARCHIVE_DIR}
|
||||||
|
tar -czf ${NEW_ARCHIVE_DIR}.tar.gz ${NEW_ARCHIVE_DIR}
|
||||||
|
echo "::set-output name=archive::"${NEW_ARCHIVE_DIR}.tar.gz
|
||||||
|
echo "::set-output name=archive_dir::"${NEW_ARCHIVE_DIR}
|
||||||
|
|
||||||
|
- name: Upload archive artefact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: Linux_amd64_archive
|
||||||
|
path: ./dist/${{ steps.make_dist.outputs.archive }}
|
||||||
|
retention-days: 2
|
||||||
|
|
||||||
|
- name: Upload checksum artefact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: Linux_amd64_checksum
|
||||||
|
path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus_beacon_node.sha512sum
|
||||||
|
retention-days: 2
|
||||||
|
|
||||||
|
build-arm64:
|
||||||
|
name: Linux 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
|
||||||
|
with:
|
||||||
|
ref: unstable
|
||||||
|
|
||||||
|
- name: Build project
|
||||||
|
id: make_dist
|
||||||
|
run: |
|
||||||
|
make dist-arm64
|
||||||
|
cd dist
|
||||||
|
ARCHIVE=$(echo *.tar.gz)
|
||||||
|
tar -xzf ${ARCHIVE}
|
||||||
|
NEW_ARCHIVE_DIR="nimbus-eth2_Linux_arm64v8_$(date +%Y%m%d)_$(git rev-parse --short=8 HEAD)"
|
||||||
|
mv ${ARCHIVE%.tar.gz} ${NEW_ARCHIVE_DIR}
|
||||||
|
tar -czf ${NEW_ARCHIVE_DIR}.tar.gz ${NEW_ARCHIVE_DIR}
|
||||||
|
echo "::set-output name=archive::"${NEW_ARCHIVE_DIR}.tar.gz
|
||||||
|
echo "::set-output name=archive_dir::"${NEW_ARCHIVE_DIR}
|
||||||
|
|
||||||
|
- name: Upload archive artefact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: Linux_arm64_archive
|
||||||
|
path: ./dist/${{ steps.make_dist.outputs.archive }}
|
||||||
|
retention-days: 2
|
||||||
|
|
||||||
|
- name: Upload checksum artefact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: Linux_arm64_checksum
|
||||||
|
path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus_beacon_node.sha512sum
|
||||||
|
retention-days: 2
|
||||||
|
|
||||||
|
build-arm:
|
||||||
|
name: Linux 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
|
||||||
|
with:
|
||||||
|
ref: unstable
|
||||||
|
|
||||||
|
- name: Build project
|
||||||
|
id: make_dist
|
||||||
|
run: |
|
||||||
|
make dist-arm
|
||||||
|
cd dist
|
||||||
|
ARCHIVE=$(echo *.tar.gz)
|
||||||
|
tar -xzf ${ARCHIVE}
|
||||||
|
NEW_ARCHIVE_DIR="nimbus-eth2_Linux_arm32v7_$(date +%Y%m%d)_$(git rev-parse --short=8 HEAD)"
|
||||||
|
mv ${ARCHIVE%.tar.gz} ${NEW_ARCHIVE_DIR}
|
||||||
|
tar -czf ${NEW_ARCHIVE_DIR}.tar.gz ${NEW_ARCHIVE_DIR}
|
||||||
|
echo "::set-output name=archive::"${NEW_ARCHIVE_DIR}.tar.gz
|
||||||
|
echo "::set-output name=archive_dir::"${NEW_ARCHIVE_DIR}
|
||||||
|
|
||||||
|
- name: Upload archive artefact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: Linux_arm_archive
|
||||||
|
path: ./dist/${{ steps.make_dist.outputs.archive }}
|
||||||
|
retention-days: 2
|
||||||
|
|
||||||
|
- name: Upload checksum artefact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: Linux_arm_checksum
|
||||||
|
path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus_beacon_node.sha512sum
|
||||||
|
retention-days: 2
|
||||||
|
|
||||||
|
build-win64:
|
||||||
|
name: Windows AMD64 release asset
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
ref: unstable
|
||||||
|
|
||||||
|
- name: Build project
|
||||||
|
id: make_dist
|
||||||
|
run: |
|
||||||
|
make dist-win64
|
||||||
|
cd dist
|
||||||
|
ARCHIVE=$(echo *.tar.gz)
|
||||||
|
tar -xzf ${ARCHIVE}
|
||||||
|
NEW_ARCHIVE_DIR="nimbus-eth2_Windows_amd64_$(date +%Y%m%d)_$(git rev-parse --short=8 HEAD)"
|
||||||
|
mv ${ARCHIVE%.tar.gz} ${NEW_ARCHIVE_DIR}
|
||||||
|
tar -czf ${NEW_ARCHIVE_DIR}.tar.gz ${NEW_ARCHIVE_DIR}
|
||||||
|
echo "::set-output name=archive::"${NEW_ARCHIVE_DIR}.tar.gz
|
||||||
|
echo "::set-output name=archive_dir::"${NEW_ARCHIVE_DIR}
|
||||||
|
|
||||||
|
- name: Upload archive artefact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: Windows_amd64_archive
|
||||||
|
path: ./dist/${{ steps.make_dist.outputs.archive }}
|
||||||
|
retention-days: 2
|
||||||
|
|
||||||
|
- name: Upload checksum artefact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: Windows_amd64_checksum
|
||||||
|
path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus_beacon_node.sha512sum
|
||||||
|
retention-days: 2
|
||||||
|
|
||||||
|
build-macos-amd64:
|
||||||
|
name: macOS AMD64 release asset
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
ref: unstable
|
||||||
|
|
||||||
|
- name: Build project
|
||||||
|
id: make_dist
|
||||||
|
run: |
|
||||||
|
make dist-macos
|
||||||
|
cd dist
|
||||||
|
ARCHIVE=$(echo *.tar.gz)
|
||||||
|
tar -xzf ${ARCHIVE}
|
||||||
|
NEW_ARCHIVE_DIR="nimbus-eth2_macOS_amd64_$(date +%Y%m%d)_$(git rev-parse --short=8 HEAD)"
|
||||||
|
mv ${ARCHIVE%.tar.gz} ${NEW_ARCHIVE_DIR}
|
||||||
|
tar -czf ${NEW_ARCHIVE_DIR}.tar.gz ${NEW_ARCHIVE_DIR}
|
||||||
|
echo "::set-output name=archive::"${NEW_ARCHIVE_DIR}.tar.gz
|
||||||
|
echo "::set-output name=archive_dir::"${NEW_ARCHIVE_DIR}
|
||||||
|
|
||||||
|
- name: Upload archive artefact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: macOS_amd64_archive
|
||||||
|
path: ./dist/${{ steps.make_dist.outputs.archive }}
|
||||||
|
retention-days: 2
|
||||||
|
|
||||||
|
- name: Upload checksum artefact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: macOS_amd64_checksum
|
||||||
|
path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus_beacon_node.sha512sum
|
||||||
|
retention-days: 2
|
||||||
|
|
||||||
|
build-macos-arm64:
|
||||||
|
name: macOS ARM64 release asset
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
ref: unstable
|
||||||
|
|
||||||
|
- name: Build project
|
||||||
|
id: make_dist
|
||||||
|
run: |
|
||||||
|
make dist-macos-arm64
|
||||||
|
cd dist
|
||||||
|
ARCHIVE=$(echo *.tar.gz)
|
||||||
|
tar -xzf ${ARCHIVE}
|
||||||
|
NEW_ARCHIVE_DIR="nimbus-eth2_macOS_arm64_$(date +%Y%m%d)_$(git rev-parse --short=8 HEAD)"
|
||||||
|
mv ${ARCHIVE%.tar.gz} ${NEW_ARCHIVE_DIR}
|
||||||
|
tar -czf ${NEW_ARCHIVE_DIR}.tar.gz ${NEW_ARCHIVE_DIR}
|
||||||
|
echo "::set-output name=archive::"${NEW_ARCHIVE_DIR}.tar.gz
|
||||||
|
echo "::set-output name=archive_dir::"${NEW_ARCHIVE_DIR}
|
||||||
|
|
||||||
|
- name: Upload archive artefact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: macOS_arm64_archive
|
||||||
|
path: ./dist/${{ steps.make_dist.outputs.archive }}
|
||||||
|
retention-days: 2
|
||||||
|
|
||||||
|
- name: Upload checksum artefact
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: macOS_arm64_checksum
|
||||||
|
path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus_beacon_node.sha512sum
|
||||||
|
retention-days: 2
|
||||||
|
|
||||||
|
prepare-prerelease:
|
||||||
|
name: Prepare pre-release
|
||||||
|
needs: [build-amd64, build-arm64, build-arm, build-win64, build-macos-amd64, build-macos-arm64]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Download artefacts
|
||||||
|
uses: actions/download-artifact@v2
|
||||||
|
|
||||||
|
- name: Create release notes
|
||||||
|
run: |
|
||||||
|
cat > release_notes.md <<EOF
|
||||||
|
## SHA512 checksums
|
||||||
|
|
||||||
|
\`\`\`text
|
||||||
|
EOF
|
||||||
|
echo '# Linux AMD64' >> release_notes.md
|
||||||
|
cat Linux_amd64_checksum/* >> release_notes.md
|
||||||
|
echo '# Linux ARM64' >> release_notes.md
|
||||||
|
cat Linux_arm64_checksum/* >> release_notes.md
|
||||||
|
echo '# Linux ARM' >> release_notes.md
|
||||||
|
cat Linux_arm_checksum/* >> release_notes.md
|
||||||
|
echo '# Windows AMD64' >> release_notes.md
|
||||||
|
cat Windows_amd64_checksum/* >> release_notes.md
|
||||||
|
echo '# macOS AMD64' >> release_notes.md
|
||||||
|
cat macOS_amd64_checksum/* >> release_notes.md
|
||||||
|
echo '# macOS ARM64' >> release_notes.md
|
||||||
|
cat macOS_arm64_checksum/* >> release_notes.md
|
||||||
|
echo '```' >> release_notes.md
|
||||||
|
|
||||||
|
- name: Delete tag
|
||||||
|
uses: dev-drprasad/delete-tag-and-release@v0.2.0
|
||||||
|
with:
|
||||||
|
delete_release: true
|
||||||
|
tag_name: latest
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Create prerelease
|
||||||
|
run: |
|
||||||
|
gh release create latest --prerelease --target unstable \
|
||||||
|
--title 'Nightly build ("unstable" branch)' --notes-file release_notes.md \
|
||||||
|
Linux_amd64_archive/* \
|
||||||
|
Linux_arm64_archive/* \
|
||||||
|
Linux_arm_archive/* \
|
||||||
|
Windows_amd64_archive/* \
|
||||||
|
macOS_amd64_archive/* \
|
||||||
|
macOS_arm64_archive/*
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Delete artefacts
|
||||||
|
uses: geekyeggo/delete-artifact@v1
|
||||||
|
with:
|
||||||
|
failOnError: false
|
||||||
|
name: |
|
||||||
|
Linux_amd64_archive
|
||||||
|
Linux_amd64_checksum
|
||||||
|
Linux_arm64_archive
|
||||||
|
Linux_arm64_checksum
|
||||||
|
Linux_arm_archive
|
||||||
|
Linux_arm_checksum
|
||||||
|
Windows_amd64_archive
|
||||||
|
Windows_amd64_checksum
|
||||||
|
macOS_amd64_archive
|
||||||
|
macOS_amd64_checksum
|
||||||
|
macOS_arm64_archive
|
||||||
|
macOS_arm64_checksum
|
||||||
|
|
Loading…
Reference in New Issue