Skip to content

feat: scale-to-zero NAT instances for AWS (#1) #1

feat: scale-to-zero NAT instances for AWS (#1)

feat: scale-to-zero NAT instances for AWS (#1) #1

name: Release
on:
push:
branches: [main]
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
release-please:
runs-on: ubuntu-latest
outputs:
release_created: ${{ steps.release.outputs.release_created }}
tag_name: ${{ steps.release.outputs.tag_name }}
steps:
- uses: googleapis/release-please-action@16a9c90856f42705d54a6fda1823352bdc62cf38 # v4
id: release
with:
config-file: release-please-config.json
manifest-file: .release-please-manifest.json
build-lambda:
needs: release-please
if: needs.release-please.outputs.release_created == 'true'
runs-on: ubuntu-latest
defaults:
run:
working-directory: cmd/lambda
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5
with:
go-version-file: cmd/lambda/go.mod
- name: Build
run: GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -tags lambda.norpc -ldflags='-s -w' -o bootstrap
- name: Package
run: zip lambda.zip bootstrap
- name: Upload to versioned release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh release upload "${{ needs.release-please.outputs.tag_name }}" lambda.zip --clobber
- name: Update rolling latest release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create nat-zero-lambda-latest \
--title "nat-zero Lambda (latest)" \
--notes "Auto-built Go Lambda binary from ${{ needs.release-please.outputs.tag_name }}" \
--latest=false 2>/dev/null || true
gh release upload nat-zero-lambda-latest lambda.zip --clobber