Maintain docker images in ECR repo #21
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: Maintain docker images in ECR repo | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: "0 0 * * *" | |
jobs: | |
pull_push_images: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Pull Docker Image and Push to ECR | |
run: | | |
which curl | |
which jq | |
aws configure set aws_access_key_id ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws configure set aws_secret_access_key ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws configure set default.region us-east-1 | |
aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/orienlabs | |
content=$(curl -sS "https://hub.docker.com/v2/repositories/browsers/edge/tags") | |
version=`echo $content | jq -r '.results[1].name'` | |
echo "Latest Edge version is $version" | |
docker pull docker.io/browsers/edge:$version | |
docker tag docker.io/browsers/edge:$version public.ecr.aws/orienlabs/browsers/edge:$version | |
docker tag docker.io/browsers/edge:$version public.ecr.aws/orienlabs/browsers/edge:latest | |
docker push public.ecr.aws/orienlabs/browsers/edge:$version | |
docker push public.ecr.aws/orienlabs/browsers/edge:latest | |
content=$(curl -sS "https://hub.docker.com/v2/repositories/browsers/chrome/tags") | |
version=`echo $content | jq -r '.results[1].name'` | |
echo "Latest Chrome version is $version" | |
docker pull docker.io/browsers/chrome:$version | |
docker tag docker.io/browsers/chrome:$version public.ecr.aws/orienlabs/browsers/chrome:$version | |
docker tag docker.io/browsers/chrome:$version public.ecr.aws/orienlabs/browsers/chrome:latest | |
docker push public.ecr.aws/orienlabs/browsers/chrome:$version | |
docker push public.ecr.aws/orienlabs/browsers/chrome:latest | |
content=$(curl -sS "https://hub.docker.com/v2/repositories/browsers/firefox/tags") | |
version=`echo $content | jq -r '.results[1].name'` | |
echo "Latest Firefox version is $version" | |
docker pull docker.io/browsers/firefox:$version | |
docker tag docker.io/browsers/firefox:$version public.ecr.aws/orienlabs/browsers/firefox:$version | |
docker tag docker.io/browsers/firefox:$version public.ecr.aws/orienlabs/browsers/firefox:latest | |
docker push public.ecr.aws/orienlabs/browsers/firefox:$version | |
docker push public.ecr.aws/orienlabs/browsers/firefox:latest | |
content=$(curl -sS "https://hub.docker.com/v2/repositories/browsers/opera/tags") | |
version=`echo $content | jq -r '.results[1].name'` | |
echo "Latest Opera version is $version" | |
docker pull docker.io/browsers/opera:$version | |
docker tag docker.io/browsers/opera:$version public.ecr.aws/orienlabs/browsers/opera:$version | |
docker tag docker.io/browsers/opera:$version public.ecr.aws/orienlabs/browsers/opera:latest | |
docker push public.ecr.aws/orienlabs/browsers/opera:$version | |
docker push public.ecr.aws/orienlabs/browsers/opera:latest | |
content=$(curl -sS "https://hub.docker.com/v2/repositories/browsers/safari/tags") | |
version=`echo $content | jq -r '.results[0].name'` #using index 0 as safari currently does not has a latest tag in docker repo | |
echo "Latest Safari version is $version" | |
docker pull docker.io/browsers/safari:$version | |
docker tag docker.io/browsers/safari:$version public.ecr.aws/orienlabs/browsers/safari:$version | |
docker tag docker.io/browsers/safari:$version public.ecr.aws/orienlabs/browsers/safari:latest | |
docker push public.ecr.aws/orienlabs/browsers/safari:$version | |
docker push public.ecr.aws/orienlabs/browsers/safari:latest | |
content=$(curl -sS "https://hub.docker.com/v2/repositories/aerokube/selenoid-ui/tags") | |
version=`echo $content | jq -r '.results[1].name'` | |
echo "Latest Selenoid-UI version is $version" | |
docker pull docker.io/aerokube/selenoid-ui:$version | |
docker tag docker.io/aerokube/selenoid-ui:$version public.ecr.aws/orienlabs/selenoid-ui:$version | |
docker tag docker.io/aerokube/selenoid-ui:$version public.ecr.aws/orienlabs/selenoid-ui:latest | |
docker push public.ecr.aws/orienlabs/selenoid-ui:$version | |
docker push public.ecr.aws/orienlabs/selenoid-ui:latest | |
content=$(curl -sS "https://hub.docker.com/v2/repositories/aerokube/selenoid/tags") | |
version=`echo $content | jq -r '.results[1].name'` | |
echo "Latest Selenoid version is $version" | |
docker pull docker.io/aerokube/selenoid:$version | |
docker tag docker.io/aerokube/selenoid:$version public.ecr.aws/orienlabs/selenoid:$version | |
docker tag docker.io/aerokube/selenoid:$version public.ecr.aws/orienlabs/selenoid:latest | |
docker push public.ecr.aws/orienlabs/selenoid:$version | |
docker push public.ecr.aws/orienlabs/selenoid:latest | |
content=$(curl -sS "https://hub.docker.com/v2/repositories/aerokube/ggr-ui/tags") | |
version=`echo $content | jq -r '.results[1].name'` | |
echo "Latest GGR-UI version is $version" | |
docker pull docker.io/aerokube/ggr-ui:$version | |
docker tag docker.io/aerokube/ggr-ui:$version public.ecr.aws/orienlabs/ggr-ui:$version | |
docker tag docker.io/aerokube/ggr-ui:$version public.ecr.aws/orienlabs/ggr-ui:latest | |
docker push public.ecr.aws/orienlabs/ggr-ui:$version | |
docker push public.ecr.aws/orienlabs/ggr-ui:latest | |
content=$(curl -sS "https://hub.docker.com/v2/repositories/aerokube/ggr/tags") | |
version=`echo $content | jq -r '.results[1].name'` | |
echo "Latest ggr version is $version" | |
docker pull docker.io/aerokube/ggr:$version | |
docker tag docker.io/aerokube/ggr:$version public.ecr.aws/orienlabs/ggr:$version | |
docker tag docker.io/aerokube/ggr:$version public.ecr.aws/orienlabs/ggr:latest | |
docker push public.ecr.aws/orienlabs/ggr:$version | |
docker push public.ecr.aws/orienlabs/ggr:latest | |
content=$(curl -sS "https://hub.docker.com/v2/repositories/selenoid/video-recorder/tags") | |
version=`echo $content | jq -r '.results[1].name'` | |
echo "Latest Video Recorder version is $version" | |
docker pull docker.io/selenoid/video-recorder:$version | |
docker tag docker.io/selenoid/video-recorder:$version public.ecr.aws/orienlabs/video-recorder:$version | |
docker tag docker.io/selenoid/video-recorder:$version public.ecr.aws/orienlabs/video-recorder:latest | |
docker push public.ecr.aws/orienlabs/video-recorder:$version | |
docker push public.ecr.aws/orienlabs/video-recorder:latest |