Merge branch 'MONK-develop' of https://github.com/decenomy/DSW #7
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 and Extract Files from Docker Container | |
on: | |
push: | |
branches: | |
- '*' | |
jobs: | |
build-files-linux-x64: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Set up environment variables | |
run: | | |
# Extract the name of the repository and use it as the ticker value | |
REPO_NAME="${GITHUB_REPOSITORY##*/}" | |
# Extract the name of the repository owner and use it as the github user | |
ACCOUNT_NAME="${GITHUB_REPOSITORY%/*}" | |
# Get the short name of the ref (strip 'refs/heads/', 'refs/tags/', etc.) | |
SHORT_REF=${GITHUB_REF##*/} | |
# Get the short commit hash | |
SHORT_COMMIT_HASH=$(git rev-parse --short HEAD) | |
# Set environment variables | |
echo "REPO_NAME=${REPO_NAME}" >> $GITHUB_ENV | |
echo "ACCOUNT_NAME=${ACCOUNT_NAME}" >> $GITHUB_ENV | |
echo "SHORT_REF=${SHORT_REF}" >> $GITHUB_ENV | |
echo "IMAGE_NAME=linux-x64-build-img-${SHORT_COMMIT_HASH}" >> $GITHUB_ENV | |
echo "CONTAINER_NAME=linux-x64-build-ctn-${SHORT_COMMIT_HASH}" >> $GITHUB_ENV | |
- name: Build and Extract Files from Docker Container | |
run: | | |
# Stop and remove any existing container with the same name | |
docker rm -f ${CONTAINER_NAME} || true | |
# Build the Docker image from the Dockerfile in the repository | |
docker buildx build \ | |
--no-cache \ | |
--build-arg CPU_CORES=$(nproc) \ | |
--build-arg TICKER=$REPO_NAME \ | |
--build-arg NAME=Monk \ | |
--build-arg BASE_NAME=monk \ | |
--build-arg TARGET=$SHORT_REF \ | |
--build-arg GITHUB_USER=$ACCOUNT_NAME \ | |
-t ${IMAGE_NAME} \ | |
-f contrib/docker/Dockerfile.dsw-linux-x64-wallet . | |
# Start the container | |
docker run -d --name ${CONTAINER_NAME} ${IMAGE_NAME} | |
# Create a temporary directory to hold the extracted files | |
mkdir release_files | |
# Copy files from the Docker container to the local filesystem | |
docker cp ${CONTAINER_NAME}:/$ACCOUNT_NAME/$REPO_NAME/deploy/linux-x64 release_files/ | |
- name: Archive and Upload Extracted Files | |
uses: actions/upload-artifact@v4 | |
with: | |
name: release-artifacts-linux-x64 | |
path: release_files | |
- name: Cleanup Docker container and image | |
run: | | |
# Stop and remove the Docker container | |
docker rm -f ${CONTAINER_NAME} | |
# Remove the Docker image | |
docker rmi ${IMAGE_NAME} | |
build-files-linux-arm64: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Set up environment variables | |
run: | | |
# Extract the name of the repository and use it as the ticker value | |
REPO_NAME="${GITHUB_REPOSITORY##*/}" | |
# Extract the name of the repository owner and use it as the github user | |
ACCOUNT_NAME="${GITHUB_REPOSITORY%/*}" | |
# Get the short name of the ref (strip 'refs/heads/', 'refs/tags/', etc.) | |
SHORT_REF=${GITHUB_REF##*/} | |
# Get the short commit hash | |
SHORT_COMMIT_HASH=$(git rev-parse --short HEAD) | |
# Set environment variables | |
echo "REPO_NAME=${REPO_NAME}" >> $GITHUB_ENV | |
echo "ACCOUNT_NAME=${ACCOUNT_NAME}" >> $GITHUB_ENV | |
echo "SHORT_REF=${SHORT_REF}" >> $GITHUB_ENV | |
echo "IMAGE_NAME=linux-arm64-build-img-${SHORT_COMMIT_HASH}" >> $GITHUB_ENV | |
echo "CONTAINER_NAME=linux-arm64-build-ctn-${SHORT_COMMIT_HASH}" >> $GITHUB_ENV | |
- name: Build and Extract Files from Docker Container | |
run: | | |
# Stop and remove any existing container with the same name | |
docker rm -f ${CONTAINER_NAME} || true | |
# Build the Docker image from the Dockerfile in the repository | |
docker buildx build \ | |
--no-cache \ | |
--build-arg CPU_CORES=$(nproc) \ | |
--build-arg TICKER=$REPO_NAME \ | |
--build-arg NAME=Monk \ | |
--build-arg BASE_NAME=monk \ | |
--build-arg TARGET=$SHORT_REF \ | |
--build-arg GITHUB_USER=$ACCOUNT_NAME \ | |
-t ${IMAGE_NAME} \ | |
-f contrib/docker/Dockerfile.dsw-linux-arm64-wallet . | |
# Start the container | |
docker run -d --name ${CONTAINER_NAME} ${IMAGE_NAME} | |
# Create a temporary directory to hold the extracted files | |
mkdir release_files | |
# Copy files from the Docker container to the local filesystem | |
docker cp ${CONTAINER_NAME}:/$ACCOUNT_NAME/$REPO_NAME/deploy/linux-arm64 release_files/ | |
- name: Archive and Upload Extracted Files | |
uses: actions/upload-artifact@v4 | |
with: | |
name: release-artifacts-linux-arm64 | |
path: release_files | |
- name: Cleanup Docker container and image | |
run: | | |
# Stop and remove the Docker container | |
docker rm -f ${CONTAINER_NAME} | |
# Remove the Docker image | |
docker rmi ${IMAGE_NAME} | |
build-windows-x64: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Set up environment variables | |
run: | | |
# Extract the name of the repository and use it as the ticker value | |
REPO_NAME="${GITHUB_REPOSITORY##*/}" | |
# Extract the name of the repository owner and use it as the github user | |
ACCOUNT_NAME="${GITHUB_REPOSITORY%/*}" | |
# Get the short name of the ref (strip 'refs/heads/', 'refs/tags/', etc.) | |
SHORT_REF=${GITHUB_REF##*/} | |
# Get the short commit hash | |
SHORT_COMMIT_HASH=$(git rev-parse --short HEAD) | |
# Set environment variables | |
echo "REPO_NAME=${REPO_NAME}" >> $GITHUB_ENV | |
echo "ACCOUNT_NAME=${ACCOUNT_NAME}" >> $GITHUB_ENV | |
echo "SHORT_REF=${SHORT_REF}" >> $GITHUB_ENV | |
echo "IMAGE_NAME=windows-x64-build-img-${SHORT_COMMIT_HASH}" >> $GITHUB_ENV | |
echo "CONTAINER_NAME=windows-x64-build-ctn-${SHORT_COMMIT_HASH}" >> $GITHUB_ENV | |
- name: Build and Extract Files from Docker Container | |
run: | | |
# Stop and remove any existing container with the same name | |
docker rm -f ${CONTAINER_NAME} || true | |
# Build the Docker image from the Dockerfile in the repository | |
docker buildx build \ | |
--no-cache \ | |
--build-arg CPU_CORES=$(nproc) \ | |
--build-arg TICKER=$REPO_NAME \ | |
--build-arg NAME=Monk \ | |
--build-arg BASE_NAME=monk \ | |
--build-arg TARGET=$SHORT_REF \ | |
--build-arg GITHUB_USER=$ACCOUNT_NAME \ | |
-t ${IMAGE_NAME} \ | |
-f contrib/docker/Dockerfile.dsw-windows-x64-wallet . | |
# Start the container | |
docker run -d --name ${CONTAINER_NAME} ${IMAGE_NAME} | |
# Create a temporary directory to hold the extracted files | |
mkdir release_files | |
# Copy files from the Docker container to the local filesystem | |
docker cp ${CONTAINER_NAME}:/$ACCOUNT_NAME/$REPO_NAME/deploy/windows-x64 release_files/ | |
- name: Archive and Upload Extracted Files | |
uses: actions/upload-artifact@v4 | |
with: | |
name: release-artifacts-windows-x64 | |
path: release_files | |
- name: Cleanup Docker container and image | |
run: | | |
# Stop and remove the Docker container | |
docker rm -f ${CONTAINER_NAME} | |
# Remove the Docker image | |
docker rmi ${IMAGE_NAME} | |
build-macos-x64: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Set up environment variables | |
run: | | |
# Extract the name of the repository and use it as the ticker value | |
REPO_NAME="${GITHUB_REPOSITORY##*/}" | |
# Extract the name of the repository owner and use it as the github user | |
ACCOUNT_NAME="${GITHUB_REPOSITORY%/*}" | |
# Get the short name of the ref (strip 'refs/heads/', 'refs/tags/', etc.) | |
SHORT_REF=${GITHUB_REF##*/} | |
# Get the short commit hash | |
SHORT_COMMIT_HASH=$(git rev-parse --short HEAD) | |
# Set environment variables | |
echo "REPO_NAME=${REPO_NAME}" >> $GITHUB_ENV | |
echo "ACCOUNT_NAME=${ACCOUNT_NAME}" >> $GITHUB_ENV | |
echo "SHORT_REF=${SHORT_REF}" >> $GITHUB_ENV | |
echo "IMAGE_NAME=macos-x64-build-img-${SHORT_COMMIT_HASH}" >> $GITHUB_ENV | |
echo "CONTAINER_NAME=macos-x64-build-ctn-${SHORT_COMMIT_HASH}" >> $GITHUB_ENV | |
- name: Build and Extract Files from Docker Container | |
run: | | |
# Stop and remove any existing container with the same name | |
docker rm -f ${CONTAINER_NAME} || true | |
# Build the Docker image from the Dockerfile in the repository | |
docker buildx build \ | |
--no-cache \ | |
--build-arg CPU_CORES=$(nproc) \ | |
--build-arg TICKER=$REPO_NAME \ | |
--build-arg NAME=Monk \ | |
--build-arg BASE_NAME=monk \ | |
--build-arg TARGET=$SHORT_REF \ | |
--build-arg GITHUB_USER=$ACCOUNT_NAME \ | |
-t ${IMAGE_NAME} \ | |
-f contrib/docker/Dockerfile.dsw-macos-x64-wallet . | |
# Start the container | |
docker run -d --name ${CONTAINER_NAME} ${IMAGE_NAME} | |
# Create a temporary directory to hold the extracted files | |
mkdir release_files | |
# Copy files from the Docker container to the local filesystem | |
docker cp ${CONTAINER_NAME}:/$ACCOUNT_NAME/$REPO_NAME/deploy/macos-x64 release_files/ | |
- name: Archive and Upload Extracted Files | |
uses: actions/upload-artifact@v4 | |
with: | |
name: release-artifacts-macos-x64 | |
path: release_files | |
- name: Cleanup Docker container and image | |
run: | | |
# Stop and remove the Docker container | |
docker rm -f ${CONTAINER_NAME} | |
# Remove the Docker image | |
docker rmi ${IMAGE_NAME} |