Exit when file exist #103
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: | |
workflow_dispatch: | |
inputs: | |
service: | |
type: choice | |
description: Choose which workflow should be ran | |
options: | |
- desktop-wallet-windows | |
- release-desktop-wallet-linux | |
push: | |
branches: | |
- ekw/SRE-1001/release-desktop-wallet | |
tags: | |
- desktop-wallet-*/* | |
env: | |
BASE_IMAGE_VERSION: "rust-1.74.1_ghc-9.6.4" | |
TARGET_NET: "stagenet" | |
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 }} | |
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: Check if image exist | |
run: | | |
aws ecr describe-images --registry-id "192549843005" --repository-name "concordium/desktop-wallet-ci" --region eu-west-1 --image-ids=imageTag=test | |
echo "EC=$?" >> $GITHUB_ENV | |
- name: Checkout repository | |
if: ${{ env.EC == 254 }} | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
ref: ${{ github.ref_name }} | |
- name: build ci image | |
if: ${{ env.EC == 254 }} | |
uses: docker/build-push-action@v6 | |
with: | |
push: true | |
tags: "192549843005.dkr.ecr.eu-west-1.amazonaws.com/concordium/desktop-wallet-ci:test" | |
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: "192549843005.dkr.ecr.eu-west-1.amazonaws.com/concordium/desktop-wallet-ci:test" | |
# 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: Install dependencies and build | |
# run: | | |
# rustup default stable | |
# node --version | |
# npm --version | |
# yarn --version | |
# python --version | |
# rustup show | |
# wasm-pack --version | |
# | |
# yarn | |
# yarn package | |
# | |
# - name: publish | |
# run: | | |
# # Extract version number | |
# VERSION=$(awk '/"version":/ { print substr($2, 2, length($2)-3); exit }' app/package.json) | |
# | |
# # Prepare filenames | |
# if [[ $TARGET_NET = "mainnet" ]]; then | |
# FILENAME_DEB="concordium-desktop-wallet-${VERSION}.deb" | |
# FILENAME_RPM="concordium-desktop-wallet-${VERSION}.rpm" | |
# FILENAME_APPIMAGE="concordium-desktop-wallet-${VERSION}.AppImage" | |
# else | |
# FILENAME_DEB="concordium-desktop-wallet-${TARGET_NET}-${VERSION}.deb" | |
# FILENAME_RPM="concordium-desktop-wallet-${TARGET_NET}-${VERSION}.rpm" | |
# FILENAME_APPIMAGE="concordium-desktop-wallet-${TARGET_NET}-${VERSION}.AppImage" | |
# fi | |
# | |
# FILENAME_LATEST_LINUX="latest-linux.yml" | |
# | |
# OUT_FILENAME_DEB="${VERSION}/${TARGET_NET}/${FILENAME_DEB}" | |
# OUT_FILENAME_RPM="${VERSION}/${TARGET_NET}/${FILENAME_RPM}" | |
# OUT_FILENAME_APPIMAGE="${VERSION}/${TARGET_NET}/${FILENAME_APPIMAGE}" | |
# OUT_LATEST_LINUX="${VERSION}/${TARGET_NET}/latest-linux.yml" | |
# | |
# # Push to s3 | |
# echo ${FILENAME_DEB} | |
# echo ${FILENAME_RPM} | |
# echo ${FILENAME_APPIMAGE} | |
# echo ${FILENAME_LATEST_LINUX} | |
# aws s3 cp "release/${FILENAME_DEB}" "${{env.S3_BUCKET}}/${OUT_FILENAME_DEB}" --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers | |
# aws s3 cp "release/${FILENAME_RPM}" "${{env.S3_BUCKET}}/${OUT_FILENAME_RPM}" --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers | |
# aws s3 cp "release/${FILENAME_APPIMAGE}" "${{env.S3_BUCKET}}/${OUT_FILENAME_APPIMAGE}" --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers | |
# aws s3 cp "release/${FILENAME_LATEST_LINUX}" "${{env.S3_BUCKET}}/${OUT_LATEST_LINUX}" --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: v1.7.4 | |
- 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 | |
# Extract version number | |
VERSION=$(awk '/"version":/ { print substr($2, 2, length($2)-3); exit }' app/package.json) | |
TARGET_NET=${{env.TARGET_NET}} | |
if [ $TARGET_NET = "mainnet" ]; then | |
FILENAME_EXE="concordium-desktop-wallet-${VERSION}.exe" | |
else | |
FILENAME_EXE="concordium-desktop-wallet-${TARGET_NET}-${VERSION}.exe" | |
fi | |
OUT_FILENAME_EXE="${VERSION}/${TARGET_NET}/${FILENAME_EXE}" | |
aws s3 ls ${{ env.S3_BUCKET }}/$OUT_FILENAME_EXE | |
EC=$? | |
if [$EC -eq 0]; then | |
echo "Executable already exist" | |
exit 1 | |
else | |
echo "OUT_OBJECT=${{ env.S3_BUCKET }}/$OUT_FILENAME_EXE" >> $GITHUB_ENV | |
fi | |
- name: setup | |
shell: bash | |
run: | | |
# Print system info | |
node --version | |
npm --version | |
yarn --version | |
python --version | |
rustup show | |
wasm-pack --version | |
# Install dependencies | |
yarn --network-timeout 1000000 | |
# Build | |
yarn package-win-no-sign | |