Skip to content

Commit

Permalink
ci: add nightly publishing logic
Browse files Browse the repository at this point in the history
  • Loading branch information
karl-cardenas-coding committed Dec 28, 2024
1 parent 7e26681 commit b8961d0
Show file tree
Hide file tree
Showing 3 changed files with 103 additions and 1 deletion.
39 changes: 39 additions & 0 deletions .github/workflows/image-prune.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Container Image Cleanup

on:
workflow_run:
workflows: ["Nightly Release"]
types: [completed]
workflow_dispatch:



jobs:
prune:
name: Prune Container Images
runs-on: ubuntu-latest
steps:

- uses: snok/container-retention-policy@v2
with:
image-names: go-lambda-cleanup
cut-off: 1 day ago UTC
timestamp-to-use: created_at
account-type: personal
org-name: karl-cardenas-coding
keep-at-least: 1
skip-tags: nightly
dry-run: false
token-type: github-token
token: ${{ secrets.GITHUB_TOKEN }}


- name: Actions Ntfy
run: |
curl \
-u ${{ secrets.NTFY_TOKEN }} \
-H "go-lambda-cleanup Nightly Release" \
-H "X-Tags: warning" \
-H "Markdown: yes" \
-d 'The Nightly Release job failed for go-lambda-cleanup. Check out the GitHub Actions logs for more details.' \
${{ secrets.NTFY_URL }}
63 changes: 63 additions & 0 deletions .github/workflows/nightly.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Nightly Release

on:
schedule:
# Run every day at 11:00 UTC
- cron: '0 11 * * *'
workflow_dispatch:


env:
GO_VERSION: '1.23'

jobs:
build-and-release:
runs-on: ubuntu-latest

steps:

- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
check-latest: true
id: go

- name: Generate AWS region file
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
run: |
aws ec2 describe-regions --all-regions --region us-east-1 --query "Regions[].RegionName" --output text >> cmd/aws-regions.txt
- name: Update Dependencies
run: go get -u ./...

- name: Execute Go tests
run: make tests

- name: Set up QEMU
uses: docker/[email protected]

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3


- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
build-args: VERSION="nightly"
platforms: linux/amd64,linux/arm64
push: true
tags: ghcr.io/${{ github.repository }}:nightly
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Copyright (c) karl-cardenas-coding
# SPDX-License-Identifier: MIT

FROM golang:1.23.2-alpine3.20 AS builder
FROM golang:1.23.4-alpine3.21 AS builder

LABEL org.opencontainers.image.source="http://github.com/karl-cardenas-coding/go-lambda-cleanup"
LABEL org.opencontainers.image.description="A solution for removing previous versions of AWS Lambdas"
Expand Down

0 comments on commit b8961d0

Please sign in to comment.