Skip to content

release

release #120

name: release
on:
workflow_dispatch:
push:
branches:
- main
schedule:
# Run at 4PM UTC every Monday
- cron: '0 16 * * 1'
permissions:
id-token: write
contents: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ssh-key: ${{ secrets.SSH_DEPLOY_KEY }}
- name: Keepalive
uses: gautamkrishnar/keepalive-workflow@v1
- name: Get Version
id: version
run: |
export HUGO_VERSION=$(curl -sSL https://api.github.com/repos/gohugoio/hugo/tags | jq -r "[.[].name] | .[0] | sub(\"v\";\"\")")
echo "HUGO_VERSION=${HUGO_VERSION}" >> $GITHUB_ENV
echo "Version: ${HUGO_VERSION}"
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: "${{ secrets.AWS_ASSUME_ROLE }}"
aws-region: "us-east-1"
- name: Login to ECR
id: ecr-login
uses: aws-actions/amazon-ecr-login@v1
with:
registry-type: public
- name: Setup Buildx Remote Docker
id: buildx
uses: truemark/aws-buildx-remote-docker-instance-action@v4
with:
security-group-id: "${{ vars.SECURITY_GROUP_ID }}"
subnet-id: "${{ vars.SUBNET_ID }}"
instance-profile: "${{ vars.INSTANCE_PROFILE }}"
region: "us-east-2"
- name: Build Alpine 3.17
run: |
docker buildx build \
--push \
--platform linux/arm64,linux/amd64 \
--build-arg OS_NAME="alpine" \
--build-arg OS_VERSION="3.17" \
--build-arg HUGO_VERSION="${{ env.HUGO_VERSION }}" \
-f Dockerfile \
-t truemark/hugo:${{ env.HUGO_VERSION }}-alpine-3.17 \
-t truemark/hugo:alpine-3.17 \
-t truemark/hugo:alpine \
-t truemark/hugo:latest \
.
- name: Copy latest to ECR
uses: truemark/skopeo-copy-action@v1
with:
src-image: "docker://truemark/hugo:latest"
dest-image: "docker://public.ecr.aws/truemark/hugo:latest"
src-username: "${{ secrets.DOCKER_HUB_USERNAME }}"
src-password: "${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}"
dest-username: "${{ steps.ecr-login.outputs.docker_username_public_ecr_aws }}"
dest-password: "${{ steps.ecr-login.outputs.docker_password_public_ecr_aws }}"
multi-arch: "all"
- name: Copy alpine to ECR
uses: truemark/skopeo-copy-action@v1
with:
src-image: "docker://truemark/hugo:alpine"
dest-image: "docker://public.ecr.aws/truemark/hugo:alpine"
src-username: "${{ secrets.DOCKER_HUB_USERNAME }}"
src-password: "${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}"
dest-username: "${{ steps.ecr-login.outputs.docker_username_public_ecr_aws }}"
dest-password: "${{ steps.ecr-login.outputs.docker_password_public_ecr_aws }}"
multi-arch: "all"
- name: Copy alpine-3.17 to ECR
uses: truemark/skopeo-copy-action@v1
with:
src-image: "docker://truemark/hugo:alpine-3.17"
dest-image: "docker://public.ecr.aws/truemark/hugo:alpine-3.17"
src-username: "${{ secrets.DOCKER_HUB_USERNAME }}"
src-password: "${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}"
dest-username: "${{ steps.ecr-login.outputs.docker_username_public_ecr_aws }}"
dest-password: "${{ steps.ecr-login.outputs.docker_password_public_ecr_aws }}"
multi-arch: "all"
- name: Copy hugo version alpine to ECR
uses: truemark/skopeo-copy-action@v1
with:
src-image: "docker://truemark/hugo:${{ env.HUGO_VERSION }}-alpine-3.17"
dest-image: "docker://public.ecr.aws/truemark/hugo:${{ env.HUGO_VERSION }}-alpine-3.17"
src-username: "${{ secrets.DOCKER_HUB_USERNAME }}"
src-password: "${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}"
dest-username: "${{ steps.ecr-login.outputs.docker_username_public_ecr_aws }}"
dest-password: "${{ steps.ecr-login.outputs.docker_password_public_ecr_aws }}"
multi-arch: "all"
- name: Build Ubuntu Jammy
run: |
docker buildx build \
--push \
--platform linux/arm64,linux/amd64 \
--build-arg OS_NAME="ubuntu" \
--build-arg OS_VERSION="jammy" \
--build-arg HUGO_VERSION="${{ env.HUGO_VERSION }}" \
-f Dockerfile \
-t truemark/hugo:${{ env.HUGO_VERSION }}-ubuntu-jammy \
-t truemark/hugo:ubuntu-jammy \
-t truemark/hugo:ubuntu \
.
- name: Copy ubuntu to ECR
uses: truemark/skopeo-copy-action@v1
with:
src-image: "docker://truemark/hugo:ubuntu"
dest-image: "docker://public.ecr.aws/truemark/hugo:ubuntu"
src-username: "${{ secrets.DOCKER_HUB_USERNAME }}"
src-password: "${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}"
dest-username: "${{ steps.ecr-login.outputs.docker_username_public_ecr_aws }}"
dest-password: "${{ steps.ecr-login.outputs.docker_password_public_ecr_aws }}"
multi-arch: "all"
- name: Copy ubuntu-jammy to ECR
uses: truemark/skopeo-copy-action@v1
with:
src-image: "docker://truemark/hugo:ubuntu-jammy"
dest-image: "docker://public.ecr.aws/truemark/hugo:ubuntu-jammy"
src-username: "${{ secrets.DOCKER_HUB_USERNAME }}"
src-password: "${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}"
dest-username: "${{ steps.ecr-login.outputs.docker_username_public_ecr_aws }}"
dest-password: "${{ steps.ecr-login.outputs.docker_password_public_ecr_aws }}"
multi-arch: "all"
- name: Copy hugo version ubuntu-jammy to ECR
uses: truemark/skopeo-copy-action@v1
with:
src-image: "docker://truemark/hugo:${{ env.HUGO_VERSION }}-ubuntu-jammy"
dest-image: "docker://public.ecr.aws/truemark/hugo:${{ env.HUGO_VERSION }}-ubuntu-jammy"
src-username: "${{ secrets.DOCKER_HUB_USERNAME }}"
src-password: "${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}"
dest-username: "${{ steps.ecr-login.outputs.docker_username_public_ecr_aws }}"
dest-password: "${{ steps.ecr-login.outputs.docker_password_public_ecr_aws }}"
multi-arch: "all"
- name: Build Debian Bookworm
run: |
docker buildx build \
--push \
--platform linux/arm64,linux/amd64 \
--build-arg OS_NAME="debian" \
--build-arg OS_VERSION="bookworm-slim" \
--build-arg HUGO_VERSION="${{ env.HUGO_VERSION }}" \
-f Dockerfile \
-t truemark/hugo:${{ env.HUGO_VERSION }}-debian-bookworm \
-t truemark/hugo:debian-bookworm \
-t truemark/hugo:debian \
.
- name: Copy debian to ECR
uses: truemark/skopeo-copy-action@v1
with:
src-image: "docker://truemark/hugo:debian"
dest-image: "docker://public.ecr.aws/truemark/hugo:debian"
src-username: "${{ secrets.DOCKER_HUB_USERNAME }}"
src-password: "${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}"
dest-username: "${{ steps.ecr-login.outputs.docker_username_public_ecr_aws }}"
dest-password: "${{ steps.ecr-login.outputs.docker_password_public_ecr_aws }}"
multi-arch: "all"
- name: Copy debian-bookworm to ECR
uses: truemark/skopeo-copy-action@v1
with:
src-image: "docker://truemark/hugo:debian-bookworm"
dest-image: "docker://public.ecr.aws/truemark/hugo:debian-bookworm"
src-username: "${{ secrets.DOCKER_HUB_USERNAME }}"
src-password: "${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}"
dest-username: "${{ steps.ecr-login.outputs.docker_username_public_ecr_aws }}"
dest-password: "${{ steps.ecr-login.outputs.docker_password_public_ecr_aws }}"
multi-arch: "all"
- name: Copy hugo version debian-bookworm to ECR
uses: truemark/skopeo-copy-action@v1
with:
src-image: "docker://truemark/hugo:${{ env.HUGO_VERSION }}-debian-bookworm"
dest-image: "docker://public.ecr.aws/truemark/hugo:${{ env.HUGO_VERSION }}-debian-bookworm"
src-username: "${{ secrets.DOCKER_HUB_USERNAME }}"
src-password: "${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}"
dest-username: "${{ steps.ecr-login.outputs.docker_username_public_ecr_aws }}"
dest-password: "${{ steps.ecr-login.outputs.docker_password_public_ecr_aws }}"
multi-arch: "all"
- name: Build Amazon Linux 2023
run: |
docker buildx build \
--push \
--platform linux/arm64,linux/amd64 \
--build-arg OS_NAME="amazonlinux" \
--build-arg OS_VERSION="2023" \
--build-arg HUGO_VERSION="${{ env.HUGO_VERSION }}" \
-f Dockerfile \
-t truemark/hugo:${{ env.HUGO_VERSION }}-amazonlinux-2023 \
-t truemark/hugo:amazonlinux-2023 \
-t truemark/hugo:amazonlinux \
.
- name: Copy amazonlinux to ECR
uses: truemark/skopeo-copy-action@v1
with:
src-image: "docker://truemark/hugo:amazonlinux"
dest-image: "docker://public.ecr.aws/truemark/hugo:amazonlinux"
src-username: "${{ secrets.DOCKER_HUB_USERNAME }}"
src-password: "${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}"
dest-username: "${{ steps.ecr-login.outputs.docker_username_public_ecr_aws }}"
dest-password: "${{ steps.ecr-login.outputs.docker_password_public_ecr_aws }}"
multi-arch: "all"
- name: Copy amazonlinux-2023 to ECR
uses: truemark/skopeo-copy-action@v1
with:
src-image: "docker://truemark/hugo:amazonlinux-2023"
dest-image: "docker://public.ecr.aws/truemark/hugo:amazonlinux-2023"
src-username: "${{ secrets.DOCKER_HUB_USERNAME }}"
src-password: "${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}"
dest-username: "${{ steps.ecr-login.outputs.docker_username_public_ecr_aws }}"
dest-password: "${{ steps.ecr-login.outputs.docker_password_public_ecr_aws }}"
multi-arch: "all"
- name: Copy hugo version amazonlinux-2023 to ECR
uses: truemark/skopeo-copy-action@v1
with:
src-image: "docker://truemark/hugo:${{ env.HUGO_VERSION }}-amazonlinux-2023"
dest-image: "docker://public.ecr.aws/truemark/hugo:${{ env.HUGO_VERSION }}-amazonlinux-2023"
src-username: "${{ secrets.DOCKER_HUB_USERNAME }}"
src-password: "${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}"
dest-username: "${{ steps.ecr-login.outputs.docker_username_public_ecr_aws }}"
dest-password: "${{ steps.ecr-login.outputs.docker_password_public_ecr_aws }}"
multi-arch: "all"