name: Nightly build on: schedule: - cron: "45 5 * * *" workflow_dispatch: jobs: build-amd64: name: Linux AMD64 release asset runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 with: ref: ${{ github.ref }} - name: Build project id: make_dist run: | make dist-amd64 cd dist ARCHIVE=$(echo *.tar.gz) tar -xzf ${ARCHIVE} NEW_ARCHIVE_DIR="nimbus-eth1_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@v3 with: name: Linux_amd64_archive path: ./dist/${{ steps.make_dist.outputs.archive }} retention-days: 2 - name: Upload checksum artefact uses: actions/upload-artifact@v3 with: name: Linux_amd64_checksum path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus.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@v3 with: ref: ${{ github.ref }} - name: Build project id: make_dist run: | make dist-arm64 cd dist ARCHIVE=$(echo *.tar.gz) tar -xzf ${ARCHIVE} NEW_ARCHIVE_DIR="nimbus-eth1_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@v3 with: name: Linux_arm64_archive path: ./dist/${{ steps.make_dist.outputs.archive }} retention-days: 2 - name: Upload checksum artefact uses: actions/upload-artifact@v3 with: name: Linux_arm64_checksum path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus.sha512sum retention-days: 2 build-win64: name: Windows AMD64 release asset runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 with: ref: ${{ github.ref }} - name: Build project id: make_dist run: | make dist-win64 cd dist ARCHIVE=$(echo *.tar.gz) tar -xzf ${ARCHIVE} NEW_ARCHIVE_DIR="nimbus-eth1_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@v3 with: name: Windows_amd64_archive path: ./dist/${{ steps.make_dist.outputs.archive }} retention-days: 2 - name: Upload checksum artefact uses: actions/upload-artifact@v3 with: name: Windows_amd64_checksum path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus.sha512sum retention-days: 2 build-macos-amd64: name: macOS AMD64 release asset runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 with: ref: ${{ github.ref }} - name: Build project id: make_dist run: | make dist-macos cd dist ARCHIVE=$(echo *.tar.gz) tar -xzf ${ARCHIVE} NEW_ARCHIVE_DIR="nimbus-eth1_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@v3 with: name: macOS_amd64_archive path: ./dist/${{ steps.make_dist.outputs.archive }} retention-days: 2 - name: Upload checksum artefact uses: actions/upload-artifact@v3 with: name: macOS_amd64_checksum path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus.sha512sum retention-days: 2 build-macos-arm64: name: macOS ARM64 release asset runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 with: ref: ${{ github.ref }} - name: Build project id: make_dist run: | make dist-macos-arm64 cd dist ARCHIVE=$(echo *.tar.gz) tar -xzf ${ARCHIVE} NEW_ARCHIVE_DIR="nimbus-eth1_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@v3 with: name: macOS_arm64_archive path: ./dist/${{ steps.make_dist.outputs.archive }} retention-days: 2 - name: Upload checksum artefact uses: actions/upload-artifact@v3 with: name: macOS_arm64_checksum path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus.sha512sum retention-days: 2 prepare-prerelease: name: Prepare pre-release needs: [build-amd64, build-arm64, build-win64, build-macos-amd64, build-macos-arm64] runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 with: ref: ${{ github.ref }} - name: Download artefacts uses: actions/download-artifact@v3 - name: Create release notes run: | cat > release_notes.md <> release_notes.md cat Linux_amd64_checksum/* >> release_notes.md echo '# Linux ARM64' >> release_notes.md cat Linux_arm64_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: nightly env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Create prerelease run: | gh release create nightly --prerelease --target master \ --title 'Nightly build ("master" branch)' --notes-file release_notes.md \ Linux_amd64_archive/* \ Linux_arm64_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 Windows_amd64_archive Windows_amd64_checksum macOS_amd64_archive macOS_amd64_checksum macOS_arm64_archive macOS_arm64_checksum