release #105
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: 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" |