Workflow file for this run
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: Concordium desktop wallet release | |
on: | |
push: | |
branches: | |
- 'ekw/SRE-1001/release-desktop-wallet' | |
tags: | |
- '*/*.*.*' | |
env: | |
BASE_IMAGE_VERSION: "rust-1.74.1_ghc-9.6.4" | |
TARGET_NET: "mainnet" | |
NODE_VERSION: "16.20.2" | |
STATIC_NODE_BINARY_IMAGE_NAME: 'static-node-binaries' | |
AWS_ROLE_TO_ASSUME: "arn:aws:iam::192549843005:role/github_concordium-desktop-wallet" | |
S3_BUCKET: "s3://desktopwallet.concordium.com" | |
ECR_REPO: "192549843005.dkr.ecr.eu-west-1.amazonaws.com/concordium/desktop-wallet-ci" | |
permissions: | |
id-token: write | |
contents: read | |
jobs: | |
login-aws: | |
runs-on: ubuntu-latest | |
outputs: | |
access_key: ${{ steps.login-ecr.outputs.docker_username_192549843005_dkr_ecr_eu_west_1_amazonaws_com }} | |
secret_key: ${{ steps.login-ecr.outputs.docker_password_192549843005_dkr_ecr_eu_west_1_amazonaws_com }} | |
CONTAINER_TAG: ${{ steps.version_check.outputs.CONTAINER_TAG }} | |
VERSION: ${{ steps.version_check.outputs.VERSION }} | |
environment: release | |
steps: | |
- name: aws creds | |
uses: aws-actions/configure-aws-credentials@v4 | |
id: creds | |
with: | |
aws-region: "eu-west-1" | |
role-to-assume: ${{ env.AWS_ROLE_TO_ASSUME }} | |
role-session-name: ReleaseDesktopWalletSession | |
mask-aws-account-id: false | |
- name: Login to Amazon ECR | |
id: login-ecr | |
uses: aws-actions/amazon-ecr-login@v2 | |
with: | |
mask-password: false | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
ref: ${{ github.ref_name }} | |
- name: Check version | |
id: version_check | |
run: | | |
# Extract version number | |
VERSION=$(jq '.version' -r app/package.json) | |
TAG_VERSION=1.7.4 #${{ github.ref_name }} | |
if [ "$VERSION" != "$TAG_VERSION" ]; then | |
echo "Tag version is not correct. Tag version: $TAG_VERSION version from package.json: $VERSION" | |
exit 1 | |
fi | |
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT | |
echo "CONTAINER_TAG=${{ env.ECR_REPO }}:$VERSION" >> $GITHUB_OUTPUT | |
- name: Check if image exist | |
run: | | |
set +e | |
aws ecr describe-images --registry-id "192549843005" --repository-name "concordium/desktop-wallet-ci" --region eu-west-1 --image-ids=imageTag=${{ steps.version_check.outputs.VERSION }} | |
echo "EC=$?" >> $GITHUB_ENV | |
- name: build ci image | |
if: ${{ env.EC == 254 }} | |
uses: docker/build-push-action@v6 | |
with: | |
push: true | |
tags: "${{ steps.version_check.outputs.CONTAINER_TAG }}" | |
context: '.' | |
file: 'scripts/desktop-wallet-ci.Dockerfile' | |
build-args: | | |
BASE_VERSION=${{ env.BASE_IMAGE_VERSION }} | |
NODE_VERSION=${{ env.NODE_VERSION }} | |
release-desktop-wallet-linux: | |
environment: release | |
needs: login-aws | |
runs-on: ubuntu-latest | |
container: | |
image: "${{needs.login-aws.outputs.CONTAINER_TAG}}" | |
credentials: | |
username: ${{needs.login-aws.outputs.access_key}} | |
password: ${{needs.login-aws.outputs.secret_key}} | |
options: -u root | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
ref: ${{ github.ref_name }} | |
- name: Login to Amazon ECR | |
uses: aws-actions/configure-aws-credentials@v4 | |
id: creds | |
with: | |
aws-region: "eu-west-1" | |
role-to-assume: ${{ env.AWS_ROLE_TO_ASSUME }} | |
role-session-name: ReleaseDesktopWalletSession | |
mask-aws-account-id: false | |
- name: Check if executable exist | |
run: | | |
set +e | |
TARGET_NET=${{env.TARGET_NET}} | |
VERSION=${{ needs.login-aws.outputs.VERSION }} | |
# Prepare filenames | |
if [ $TARGET_NET = "mainnet" ]; then | |
FILENAME="concordium-desktop-wallet-${{ needs.login-aws.outputs.VERSION }}" | |
else | |
FILENAME="concordium-desktop-wallet-${TARGET_NET}-${{ needs.login-aws.outputs.VERSION }}" | |
fi | |
#FILENAME_LATEST_LINUX="latest-linux.yml" | |
#OUT_FILENAME="${{ needs.login-aws.outputs.VERSION }}/${TARGET_NET}/${FILENAME}" | |
#OUT_LATEST_LINUX="${{ needs.login-aws.outputs.VERSION }}/${TARGET_NET}/latest-linux.yml" | |
OUT_FOLDER="${{ env.S3_BUCKET }}/test/${VERSION}/${TARGET_NET}" | |
aws s3 ls ${{env.S3_BUCKET}}/test/${OUT_FILENAME}.deb | |
EC=$? | |
if [ $EC -eq 0 ]; then | |
echo ".deb file already exist" | |
elif [ $EC -ne 1 ]; then | |
echo "Error: $EC" | |
fi | |
echo "EXIT_CODE=$EC" >> $GITHUB_ENV | |
#echo "OUT_FILENAME=$OUT_FILENAME" >> $GITHUB_ENV | |
#echo "FILENAME=$FILENAME" >> $GITHUB_ENV | |
#echo "OUT_YML_FILENAME=$OUT_LATEST_LINUX" >> $GITHUB_ENV | |
echo "OUT_FOLDER=$OUT_FOLDER" >> $GITHUB_ENV | |
- name: Install dependencies and build | |
if: ${{ env.EXIT_CODE == 1 }} | |
run: | | |
rustup default stable | |
node --version | |
npm --version | |
yarn --version | |
python --version | |
rustup show | |
wasm-pack --version | |
yarn | |
yarn package | |
- name: Publish | |
if: ${{ env.EXIT_CODE == 1 }} | |
run: | | |
set +e | |
# Push to s3 | |
aws s3 cp --recursive release/ ${{ env.OUT_FOLDER }} --exclude linux-unpacked builder-debug.yml --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers | |
#aws s3 cp "release/${{ env.FILENAME }}.deb" "${{env.S3_BUCKET}}/${{ env.OUT_FILENAME }}.deb" --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers | |
#aws s3 cp "release/${{ env.FILENAME }}.rpm" "${{env.S3_BUCKET}}/${{ env.OUT_FILENAME }}.rpm" --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers | |
#aws s3 cp "release/${{ env.FILENAME }}.AppImage" "${{env.S3_BUCKET}}/${{ env.OUT_FILENAME }}.rpm" --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers | |
#aws s3 cp "release/latest-linux.yml" "${{env.S3_BUCKET}}/${{ env.OUT_YML_FILENAME }}" --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers | |
#using windows-2019 to be able to use visual studio 2019, newer versions do not support older versions of node | |
release-desktop-wallet-windows: | |
runs-on: windows-2019 | |
environment: release | |
needs: login-aws | |
steps: | |
- name: aws creds | |
uses: aws-actions/configure-aws-credentials@v4 | |
id: creds | |
with: | |
aws-region: "eu-west-1" | |
role-to-assume: ${{ env.AWS_ROLE_TO_ASSUME }} | |
role-session-name: ReleaseDesktopWalletSession | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
ref: ${{ github.ref_name }} | |
- name: Install dependencies | |
uses: jetli/[email protected] | |
with: | |
version: 'v0.9.1' | |
- name: install node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 14.16.0 | |
- name: Check if file exists | |
shell: bash | |
run: | | |
set +e | |
TARGET_NET=${{env.TARGET_NET}} | |
VERSION=${{ needs.login-aws.outputs.VERSION }} | |
if [ $TARGET_NET = "mainnet" ]; then | |
FILENAME_EXE="concordium-desktop-wallet-${{ needs.login-aws.outputs.VERSION }}.exe" | |
else | |
FILENAME_EXE="concordium-desktop-wallet-${TARGET_NET}-${{ needs.login-aws.outputs.VERSION }}.exe" | |
fi | |
#OUT_YML="${{ needs.login-aws.outputs.VERSION }}/${TARGET_NET}/latest.yml" | |
#OUT_FILENAME_EXE="${{ needs.login-aws.outputs.VERSION }}/${TARGET_NET}/${FILENAME_EXE}" | |
OUT_FOLDER="${{ env.S3_BUCKET }}/test/${VERSION}/${TARGET_NET}" | |
aws s3 ls ${{ env.S3_BUCKET }}/test/$OUT_FILENAME_EXE | |
EC=$? | |
echo $EC | |
if [ $EC -eq 0 ]; then | |
echo "$OUT_OBJECT already exist" | |
elif [ $EC -ne 1 ]; then | |
echo "Error: $EC" | |
fi | |
#echo "OUT_EXE=$OUT_FILENAME_EXE" >> $GITHUB_ENV | |
#echo "FILENAME_EXE=$FILENAME_EXE" >> $GITHUB_ENV | |
#echo "OUT_YML=$OUT_YML" >> $GITHUB_ENV | |
echo "EXIT_CODE=$EC" >> $GITHUB_ENV | |
echo "OUT_FOLDER=$OUT_FOLDER" >> $GITHUB_ENV | |
- name: Build and push desktop wallet | |
if: ${{ env.EXIT_CODE == 1 }} | |
shell: bash | |
run: | | |
TARGET_NET=${{env.TARGET_NET}} | |
# Print system info | |
node --version | |
npm --version | |
yarn --version | |
python --version | |
rustup show | |
wasm-pack --version | |
yarn --network-timeout 1000000 | |
# Build | |
yarn package-win-no-sign | |
# Push | |
aws s3 cp release/ ${{ env.OUT_FOLDER }} --exclude win-unpacked builder-debug.yml *.blockmap --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers | |
#aws s3 cp "release/latest.yml" ${{ env.S3_BUCKET }}/${{ env.OUT_YML }} --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers | |
#aws s3 cp "release/${{ env.FILENAME_EXE}}" ${{ env.S3_BUCKET }}/${{ env.OUT_EXE }} --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers |