Skip to content

Full dry-run test

Full dry-run test #43

Workflow file for this run

name: Build and Push rosetta
on:
push:
branches:
- ekw/SRE-999/release-rosetta
tags:
- "*.*.*"
env:
RUST_IMAGE_TAG: '1.73'
IAM_ROLE: "arn:aws:iam::192549843005:role/github_concordium-rosetta"
BASE_IMAGE: "debian:bullseye-slim"
permissions:
id-token: write
contents: read
jobs:
rosetta-version:
runs-on: ubuntu-latest
outputs:
OUTFILE_SHORT: ${{steps.version.outputs.outfile}}
OUTFOLDER: "s3://distribution.concordium.software/tools"
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
ref: ${{ github.ref_name }}
submodules: recursive
- name: Get the rosetta version
id: version
run: |
CARGO_VERSION=$(yq .package.version "Cargo.toml")
if [ ! "1.2.0" = "$CARGO_VERSION" ] ; then #if [ ! "${{ github.ref_name }}" = "$CARGO_VERSION" ] ; then
echo "::error::$CARGO_VERSION does not match ${{ github.ref_name }}."
exit 1
fi
echo "outfile=concordium-rosetta-test-$CARGO_VERSION" >> $GITHUB_OUTPUT
release-rosetta-macos:
needs: rosetta-version
runs-on: macos-latest
environment: release
env:
OUTFILE: ${{needs.rosetta-version.outputs.OUTFOLDER}}/macos/${{needs.rosetta-version.outputs.OUTFILE_SHORT}}
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
ref: ${{ github.ref_name }}
submodules: recursive
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: "eu-west-1"
role-to-assume: ${{ env.IAM_ROLE }}
role-session-name: ReleaseRosettaSession
- name: Check if version exist in s3
run: |
set +e
output=$(aws s3 ls "${{ env.OUTFILE }}")
ec=$?
if [ $ec -eq "0" ]; then
echo "Objects found ${{ env.OUTFILE }}"
exit 1
elif [ $ec -ne "1" ]; then
echo "$output"
fi
- name: Build
run: |
rustup default ${{ env.RUST_IMAGE_TAG }}
cargo run --release -- --version
- name: Publish
run: |
ls ./target/release/concordium-rosetta
# aws s3 cp ./target/release/concordium-rosetta ${{ env.OUTFILE }}
release-rosetta-windows:
runs-on: windows-latest
needs: rosetta-version
environment: release
env:
OUTFILE: "${{needs.rosetta-version.outputs.OUTFOLDER}}/windows/${{needs.rosetta-version.outputs.OUTFILE_SHORT}}.exe"
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
ref: ${{ github.ref_name }}
submodules: recursive
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: "eu-west-1"
role-to-assume: ${{ env.IAM_ROLE }}
role-session-name: ReleaseRosettaSession
- name: Check if version exist in s3
run: |-
set +e
output=$(aws s3 ls "${{ env.OUTFILE }}")
ec=$?
if [ $ec -eq "0" ]; then
echo "Objects found ${{ env.OUTFILE }}"
exit 1
elif [ $ec -ne "1" ]; then
echo "$output"
fi
shell: bash
- name: Build
run: |
rustup default ${{ env.RUST_IMAGE_TAG }}
cargo run --release -- --version
- name: Publish
run: |
ls ./target/release/concordium-rosetta.exe
# aws s3 cp ./target/release/concordium-rosetta.exe ${{ env.OUTFILE }}
release-rosetta-docker:
runs-on: ubuntu-latest
environment: release
steps:
#- name: Login to Docker Hub
# if: ${{ secrets.DOCKERHUB_TOKEN }}
# uses: docker/login-action@v3
# with:
# username: 'concordium'
# password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Checkout Repository
uses: actions/checkout@v4
with:
ref: ${{ github.ref_name }}
submodules: recursive
- name: Set image tag if correctly formatted
run: |
TAG_VERSION=${{ github.ref_name }}
if [ -n "Cargo.toml" ] ; then
CARGO_VERSION=$(yq .package.version "Cargo.toml")
if [ ! "$TAG_VERSION" = "$CARGO_VERSION" ] ; then
echo "::error::$CARGO_VERSION does not match $TAG_VERSION."
exit 1
fi
fi
echo "FULL_IMAGE_TAG=concordium/rosetta:${TAG_VERSION}" >> $GITHUB_ENV
- name: Check if image exist
run: |
set +e
docker manifest inspect ${{ env.FULL_IMAGE_TAG }}
EXITCODE=$?
if [ $EXITCODE -eq "0" ]; then
echo "Error: ${{ env.FULL_IMAGE_TAG }} already exist"
exit 1
fi
- name: Build and push docker image
uses: docker/build-push-action@v6
with:
context: '.'
file: Dockerfile
tags: ${{ env.FULL_IMAGE_TAG }}
no-cache: true
push: false
build-args: |
base_image=${{ env.BASE_IMAGE }}
build_image=rust:${{ env.RUST_IMAGE_TAG }}-slim-bullseye
release-rosetta-linux:
runs-on: ubuntu-latest
needs: rosetta-version
environment: release
env:
OUTFILE: ${{needs.rosetta-version.outputs.OUTFOLDER}}/linux/${{needs.rosetta-version.outputs.OUTFILE_SHORT}}
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
ref: ${{ github.ref_name }}
submodules: recursive
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: "eu-west-1"
role-to-assume: ${{ env.IAM_ROLE }}
role-session-name: ReleaseRosettaSession
- name: Check if version exist in s3
run: |-
set +e
output=$(aws s3 ls "${{ env.OUTFILE }}")
ec=$?
if [ $ec -eq "0" ]; then
echo "Objects found ${{ env.OUTFILE }}"
exit 1
elif [ $ec -ne "1" ]; then
echo "$output"
fi
- name: Build
run: |
rustup default ${{ env.RUST_IMAGE_TAG }}
cargo run --release -- --version
- name: Publish
run: |
ls ./target/release/concordium-rosetta
# aws s3 cp ./target/release/concordium-rosetta ${{ env.OUTFILE }}