Merge pull request #4756 from pwojcikdev/github-actions-update
GitHub workflow updates
This commit is contained in:
commit
55e906569a
17 changed files with 74 additions and 43 deletions
|
@ -3,7 +3,7 @@ description: "Restore file modification timestamps from git commit timestamps"
|
|||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
repository: "MestreLion/git-tools"
|
||||
ref: a42a069bc755f0fa81316965335cb33dbf22a968 # pin latest commit
|
||||
|
|
6
.github/workflows/analyzers.yml
vendored
6
.github/workflows/analyzers.yml
vendored
|
@ -8,7 +8,7 @@ jobs:
|
|||
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 #v3.1.0
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Installing clang-format
|
||||
env:
|
||||
|
@ -28,7 +28,7 @@ jobs:
|
|||
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 #v3.1.0
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@13ae5bb136fac2878aff31522b9efb785519f984 #v4.3.0
|
||||
|
@ -50,6 +50,6 @@ jobs:
|
|||
runs-on: ubuntu-20.04
|
||||
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
|
||||
steps:
|
||||
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 #v3.1.0
|
||||
- uses: actions/checkout@v4
|
||||
- name: Run code-inspector
|
||||
run: ci/code-inspector-check.sh
|
||||
|
|
42
.github/workflows/build_deploy.yml
vendored
42
.github/workflows/build_deploy.yml
vendored
|
@ -1,7 +1,7 @@
|
|||
name: Build & Deploy
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * 3,6"
|
||||
- cron: "0 0 * * 3,6" # Every Wednesday and Saturday at 00:00
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
is_release_build:
|
||||
|
@ -14,12 +14,15 @@ env:
|
|||
|
||||
jobs:
|
||||
prepare_build:
|
||||
name: Prepare Build
|
||||
runs-on: ubuntu-22.04
|
||||
outputs:
|
||||
ci_tag: ${{ steps.set_vars.outputs.ci_tag }}
|
||||
tag_created: ${{ steps.set_vars.outputs.tag_created }}
|
||||
steps:
|
||||
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 #v3.1.0
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set the tag and version
|
||||
id: tag_set
|
||||
run: |
|
||||
|
@ -27,14 +30,15 @@ jobs:
|
|||
env:
|
||||
GITHUB_ACTOR: ${{ github.actor }}
|
||||
IS_RELEASE_BUILD: ${{ github.event.inputs.is_release_build || 'false' }}
|
||||
|
||||
- name: Set output
|
||||
id: set_vars
|
||||
run: |
|
||||
echo "ci_tag=$CI_TAG" >> $GITHUB_OUTPUT
|
||||
echo "tag_created=$TAG_CREATED" >> $GITHUB_OUTPUT
|
||||
|
||||
|
||||
osx_job:
|
||||
name: macOS [${{ matrix.network }}]
|
||||
needs: prepare_build
|
||||
if: ${{ needs.prepare_build.outputs.tag_created == 'true' }}
|
||||
runs-on: macOS-14
|
||||
|
@ -43,19 +47,22 @@ jobs:
|
|||
matrix:
|
||||
network: ["TEST", "BETA", "LIVE"]
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 #v3.1.0
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: "recursive"
|
||||
ref: ${{ needs.prepare_build.outputs.ci_tag }}
|
||||
repository: ${{ github.repository }}
|
||||
|
||||
- name: Prepare
|
||||
run: ci/prepare/macos/prepare.sh
|
||||
|
||||
- name: Build Artifact
|
||||
run: ci/build-deploy.sh "/tmp/qt/lib/cmake/Qt5";
|
||||
env:
|
||||
NETWORK: ${{ matrix.network }}
|
||||
CI_TAG: ${{ needs.prepare_build.outputs.ci_tag }}
|
||||
|
||||
- name: Deploy Artifact
|
||||
run: ci/actions/deploy.sh
|
||||
env:
|
||||
|
@ -66,9 +73,9 @@ jobs:
|
|||
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
AWS_DEFAULT_REGION: us-east-2
|
||||
|
||||
|
||||
linux_job:
|
||||
name: Linux [${{ matrix.network }}]
|
||||
needs: prepare_build
|
||||
if: ${{ needs.prepare_build.outputs.tag_created == 'true' }}
|
||||
runs-on: ubuntu-22.04
|
||||
|
@ -77,13 +84,16 @@ jobs:
|
|||
matrix:
|
||||
network: ["TEST", "BETA", "LIVE"]
|
||||
steps:
|
||||
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 #v3.1.0
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: "recursive"
|
||||
ref: ${{ needs.prepare_build.outputs.ci_tag }}
|
||||
repository: ${{ github.repository }}
|
||||
|
||||
- name: Prepare
|
||||
run: sudo -E ci/prepare/linux/prepare.sh
|
||||
|
||||
- name: Build Artifact
|
||||
run: ci/build-deploy.sh "/usr/lib/x86_64-linux-gnu/cmake/Qt5"
|
||||
env:
|
||||
|
@ -101,8 +111,8 @@ jobs:
|
|||
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
AWS_DEFAULT_REGION: us-east-2
|
||||
|
||||
|
||||
linux_docker_job:
|
||||
name: Docker [${{ matrix.network }}]
|
||||
needs: prepare_build
|
||||
if: ${{ needs.prepare_build.outputs.tag_created == 'true' }}
|
||||
runs-on: ubuntu-22.04
|
||||
|
@ -117,21 +127,25 @@ jobs:
|
|||
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
|
||||
IS_RELEASE_BUILD: ${{ github.event.inputs.is_release_build || 'false' }}
|
||||
steps:
|
||||
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 #v3.1.0
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: "recursive"
|
||||
ref: ${{ needs.prepare_build.outputs.ci_tag }}
|
||||
repository: ${{ github.repository }}
|
||||
|
||||
- name: Build Docker
|
||||
run: ci/actions/linux/docker-build.sh
|
||||
env:
|
||||
NETWORK: ${{ matrix.network }}
|
||||
- name: Deploy Docker Hub
|
||||
|
||||
- name: Deploy Docker (Docker Hub)
|
||||
if: env.DOCKER_PASSWORD != ''
|
||||
run: ci/actions/linux/docker-deploy.sh
|
||||
env:
|
||||
NETWORK: ${{ matrix.network }}
|
||||
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Deploy Docker (ghcr.io)
|
||||
run: ci/actions/linux/ghcr-deploy.sh
|
||||
env:
|
||||
|
@ -140,8 +154,8 @@ jobs:
|
|||
DOCKER_USER: ${{ github.repository_owner }}
|
||||
DOCKER_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
|
||||
windows_job:
|
||||
name: Windows [${{ matrix.network }}]
|
||||
needs: prepare_build
|
||||
if: ${{ needs.prepare_build.outputs.tag_created == 'true' }}
|
||||
runs-on: windows-latest
|
||||
|
@ -150,18 +164,22 @@ jobs:
|
|||
matrix:
|
||||
network: ["TEST", "BETA", "LIVE"]
|
||||
steps:
|
||||
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 #v3.1.0
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: "recursive"
|
||||
ref: ${{ needs.prepare_build.outputs.ci_tag }}
|
||||
repository: ${{ github.repository }}
|
||||
|
||||
- name: Prepare
|
||||
run: ci/prepare/windows/prepare.ps1
|
||||
|
||||
- name: Build Artifact
|
||||
run: ci/actions/windows/build.ps1
|
||||
env:
|
||||
CSC_LINK: ${{ secrets.CSC_LINK }}
|
||||
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
|
||||
|
||||
- name: Deploy Artifact
|
||||
run: ci/actions/windows/deploy.ps1
|
||||
env:
|
||||
|
|
2
.github/workflows/changelog.yml
vendored
2
.github/workflows/changelog.yml
vendored
|
@ -37,7 +37,7 @@ jobs:
|
|||
echo "REPO_TO_RUN=${{ github.event.inputs.repo }}" >> $GITHUB_ENV
|
||||
echo "MODE=${{ github.event.inputs.mode }}" >> $GITHUB_ENV
|
||||
- name: Checks out the required workflow files (workflow repo)
|
||||
uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 #v3.1.0
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ github.ref }}
|
||||
repository: ${{ github.repository }}
|
||||
|
|
4
.github/workflows/code_sanitizers.yml
vendored
4
.github/workflows/code_sanitizers.yml
vendored
|
@ -35,7 +35,7 @@ jobs:
|
|||
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: "recursive"
|
||||
|
||||
|
@ -91,7 +91,7 @@ jobs:
|
|||
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: "recursive"
|
||||
|
||||
|
|
2
.github/workflows/coverage.yml
vendored
2
.github/workflows/coverage.yml
vendored
|
@ -24,7 +24,7 @@ jobs:
|
|||
continue-on-error: true
|
||||
timeout-minutes: 60
|
||||
steps:
|
||||
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 #v3.1.0
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: "recursive"
|
||||
- name: Fetch Deps
|
||||
|
|
|
@ -9,7 +9,7 @@ jobs:
|
|||
linux_job:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 #v3.1.0
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: "recursive"
|
||||
- name: Fetch Deps
|
||||
|
|
2
.github/workflows/flamegraphs.yml
vendored
2
.github/workflows/flamegraphs.yml
vendored
|
@ -22,7 +22,7 @@ jobs:
|
|||
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: "recursive"
|
||||
|
||||
|
|
2
.github/workflows/prepare_release.yml
vendored
2
.github/workflows/prepare_release.yml
vendored
|
@ -7,7 +7,7 @@ jobs:
|
|||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3.1.0
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ github.ref }}
|
||||
fetch-depth: 0
|
||||
|
|
6
.github/workflows/unit_tests.yml
vendored
6
.github/workflows/unit_tests.yml
vendored
|
@ -20,7 +20,7 @@ jobs:
|
|||
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: "recursive"
|
||||
|
||||
|
@ -66,7 +66,7 @@ jobs:
|
|||
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: "recursive"
|
||||
|
||||
|
@ -115,7 +115,7 @@ jobs:
|
|||
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: "recursive"
|
||||
|
||||
|
|
|
@ -20,8 +20,6 @@ case "${NETWORK}" in
|
|||
esac
|
||||
|
||||
if [[ -n "${S3_BUILD_DIRECTORY}" ]]; then
|
||||
|
||||
|
||||
DIRECTORY="${S3_BUILD_DIRECTORY}/${BUILD}"
|
||||
else
|
||||
DIRECTORY=$BUILD
|
||||
|
@ -33,7 +31,7 @@ if [[ "$OS" == 'Linux' && "$IS_RPM_DEPLOY" -eq "1" ]]; then
|
|||
|
||||
for rpm in $RPMS; do
|
||||
SHA=$(sha256sum ${rpm})
|
||||
echo "Hash: $SHA"
|
||||
echo "::notice::Hash: $SHA"
|
||||
echo $SHA > ${GITHUB_WORKSPACE}/$(basename "${rpm}.sha256")
|
||||
|
||||
aws s3 cp ${rpm} s3://${S3_BUCKET_NAME}/$DIRECTORY/binaries/$(basename "${rpm}") --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers
|
||||
|
@ -42,7 +40,7 @@ if [[ "$OS" == 'Linux' && "$IS_RPM_DEPLOY" -eq "1" ]]; then
|
|||
|
||||
for srpm in $SRPMS; do
|
||||
SHA=$(sha256sum ${srpm})
|
||||
echo "Hash: $SHA"
|
||||
echo "::notice::Hash: $SHA"
|
||||
echo $SHA > ${GITHUB_WORKSPACE}/$(basename "${srpm}).sha256")
|
||||
|
||||
aws s3 cp ${srpm} s3://${S3_BUCKET_NAME}/$DIRECTORY/source/$(basename "${srpm}") --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers
|
||||
|
@ -50,11 +48,11 @@ if [[ "$OS" == 'Linux' && "$IS_RPM_DEPLOY" -eq "1" ]]; then
|
|||
done
|
||||
elif [[ "$OS" == 'Linux' ]]; then
|
||||
SHA=$(sha256sum $GITHUB_WORKSPACE/build/nano-node-*-Linux.tar.bz2)
|
||||
echo "Hash: $SHA"
|
||||
echo "::notice::Hash: $SHA"
|
||||
echo $SHA >$GITHUB_WORKSPACE/nano-node-$TAG-Linux.tar.bz2.sha256
|
||||
|
||||
SHA=$(sha256sum $GITHUB_WORKSPACE/build/nano-node-*-Linux.deb)
|
||||
echo "Hash: $SHA"
|
||||
echo "::notice::Hash: $SHA"
|
||||
echo $SHA >$GITHUB_WORKSPACE/nano-node-$TAG-Linux.deb.sha256
|
||||
|
||||
aws s3 cp $GITHUB_WORKSPACE/build/nano-node-*-Linux.tar.bz2 s3://${S3_BUCKET_NAME}/$DIRECTORY/binaries/nano-node-$TAG-Linux.tar.bz2 --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers
|
||||
|
@ -63,7 +61,7 @@ elif [[ "$OS" == 'Linux' ]]; then
|
|||
aws s3 cp $GITHUB_WORKSPACE/nano-node-$TAG-Linux.deb.sha256 s3://${S3_BUCKET_NAME}/$DIRECTORY/binaries/nano-node-$TAG-Linux.deb.sha256 --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers
|
||||
else
|
||||
SHA=$(sha256sum $GITHUB_WORKSPACE/build/nano-node-*-Darwin.dmg)
|
||||
echo "Hash: $SHA"
|
||||
echo "::notice::Hash: $SHA"
|
||||
echo $SHA >$GITHUB_WORKSPACE/build/nano-node-$TAG-Darwin.dmg.sha256
|
||||
|
||||
aws s3 cp $GITHUB_WORKSPACE/build/nano-node-*-Darwin.dmg s3://${S3_BUCKET_NAME}/$DIRECTORY/binaries/nano-node-$TAG-Darwin.dmg --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers
|
||||
|
|
|
@ -134,7 +134,22 @@ docker_login()
|
|||
push_docker_image()
|
||||
{
|
||||
local image_name=$1
|
||||
|
||||
# Log the image name before pushing
|
||||
echo "Pushing image: $image_name"
|
||||
|
||||
# Push the image
|
||||
"$scripts"/custom-timeout.sh 30 docker push "$image_name"
|
||||
|
||||
# After pushing, get the digest from the local image manifest
|
||||
local digest
|
||||
digest=$(docker image inspect --format='{{index .RepoDigests 0}}' "$image_name")
|
||||
|
||||
if [ -n "$digest" ]; then
|
||||
echo "::notice::Hash: $digest $image_name"
|
||||
else
|
||||
echo "::error::Could not retrieve digest for image $image_name"
|
||||
fi
|
||||
}
|
||||
|
||||
deploy_env_images()
|
||||
|
@ -154,7 +169,7 @@ deploy_tags()
|
|||
local exclude_pattern=$2
|
||||
local tags=$(docker images --format '{{.Repository}}:{{.Tag }}' | grep "$repo" | grep -vE "$exclude_pattern")
|
||||
|
||||
#Debug list all tags
|
||||
# Debug list all tags
|
||||
docker images --format '{{.Repository}}:{{.Tag }}'
|
||||
|
||||
for tag in $tags; do
|
||||
|
|
|
@ -27,8 +27,8 @@ $zip_hash = ((Get-FileHash $zip).hash)+" "+(split-path -Path $zip -Resolve -leaf
|
|||
$exe_hash | Out-file -FilePath "$exe.sha256"
|
||||
$zip_hash | Out-file -FilePath "$zip.sha256"
|
||||
|
||||
Write-Output "Hash: $exe_hash"
|
||||
Write-Output "Hash: $zip_hash"
|
||||
Write-Output "::notice::Hash: $exe_hash"
|
||||
Write-Output "::notice::Hash: $zip_hash"
|
||||
|
||||
aws s3 cp "$exe" s3://$env:S3_BUCKET_NAME/$directory/binaries/nano-node-$env:TAG-win64.exe --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers
|
||||
aws s3 cp "$exe.sha256" s3://$env:S3_BUCKET_NAME/$directory/binaries/nano-node-$env:TAG-win64.exe.sha256 --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
set -euox pipefail
|
||||
|
||||
#Homebrew randomly fails to update. Retry 5 times with 15s interval
|
||||
# Homebrew randomly fails to update. Retry 5 times with 15s interval
|
||||
for i in {1..5}; do brew update && break || { echo "Update failed, retrying..."; sleep 15; }; done
|
||||
|
||||
brew install coreutils
|
||||
|
@ -10,4 +10,4 @@ brew install qt@5
|
|||
brew link qt@5
|
||||
|
||||
# Workaround: https://github.com/Homebrew/homebrew-core/issues/8392
|
||||
echo "$(brew --prefix qt5)/bin" >> $GITHUB_PATH
|
||||
echo "$(brew --prefix qt@5)/bin" >> $GITHUB_PATH
|
|
@ -44,7 +44,7 @@ for script in ${NANO_SYSTEST_DIR}/*.sh; do
|
|||
done
|
||||
|
||||
if [ $overall_status -eq 0 ]; then
|
||||
echo "::notice::All systests passed"
|
||||
echo "All systests passed"
|
||||
else
|
||||
echo "::error::Some systests failed"
|
||||
exit 1
|
||||
|
|
|
@ -19,7 +19,7 @@ if [[ ${#reports[@]} -gt 0 ]]; then
|
|||
issue_reported=true
|
||||
done
|
||||
else
|
||||
echo "::notice::No report has been generated."
|
||||
echo "No report has been generated."
|
||||
fi
|
||||
|
||||
echo "issue_reported=${issue_reported}" >> $GITHUB_OUTPUT
|
||||
|
@ -28,6 +28,6 @@ if $issue_reported; then
|
|||
echo "::error::Issues were reported in the sanitizer report."
|
||||
exit 1
|
||||
else
|
||||
echo "::notice::No issues found in the sanitizer reports."
|
||||
echo "No issues found in the sanitizer reports."
|
||||
exit 0
|
||||
fi
|
|
@ -1,4 +1,4 @@
|
|||
FROM ubuntu:22.04 as builder
|
||||
FROM ubuntu:22.04 AS builder
|
||||
|
||||
ARG COMPILER=gcc
|
||||
ARG NANO_NETWORK=live
|
||||
|
@ -10,7 +10,7 @@ RUN /tmp/prepare/prepare.sh
|
|||
COPY ./ /tmp/src
|
||||
WORKDIR /tmp/src
|
||||
|
||||
#Define ARGs for ci/build-node.sh
|
||||
# Define ARGs for ci/build-node.sh
|
||||
ARG BUILD_TYPE=RelWithDebInfo
|
||||
ARG NANO_TEST=OFF
|
||||
ARG NANO_TRACING=OFF
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue