feat(ci): add CI workflow e2e test with cold/warm builds
Some checks failed
Go CI with S3 Caching / build-and-test (push) Failing after 1m5s
Some checks failed
Go CI with S3 Caching / build-and-test (push) Failing after 1m5s
This commit is contained in:
56
.gitea/workflows/ci.yml
Normal file
56
.gitea/workflows/ci.yml
Normal file
@@ -0,0 +1,56 @@
|
||||
name: Go CI with S3 Caching
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-and-test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Add SSH known host
|
||||
run: |
|
||||
install -m 700 -d "$HOME/.ssh"
|
||||
ssh-keyscan -H git.ericxliu.me > $HOME/.ssh/known_hosts
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ssh-key: ${{ secrets.SSH_KEY }}
|
||||
|
||||
- name: Setup Go + S3 Caching
|
||||
uses: ./.gitea/actions/go-cache
|
||||
with:
|
||||
go-version: '1.24'
|
||||
s3-bucket: sccache
|
||||
s3-endpoint: https://s3.ericxliu.me
|
||||
s3-path-style: "true"
|
||||
env:
|
||||
SCCACHE_AWS_ACCESS_KEY_ID: ${{ secrets.SCCACHE_AWS_ACCESS_KEY_ID }}
|
||||
SCCACHE_AWS_SECRET_ACCESS_KEY: ${{ secrets.SCCACHE_AWS_SECRET_ACCESS_KEY }}
|
||||
AWS_REGION: auto
|
||||
|
||||
- name: Clean Local Go Cache (Start Fresh)
|
||||
run: |
|
||||
echo "Clearing local cache..."
|
||||
go clean -cache
|
||||
|
||||
- name: Cold Build (Cache Miss / Populates S3)
|
||||
run: |
|
||||
echo "Running cold build..."
|
||||
time go build -o test-binary main.go
|
||||
|
||||
- name: Clean Local Go Cache (Forces Remote Fetch)
|
||||
run: |
|
||||
echo "Clearing local cache to force remote S3 fetch..."
|
||||
go clean -cache
|
||||
|
||||
- name: Warm Build (Cache Hit / Fetches from S3)
|
||||
run: |
|
||||
echo "Running warm build..."
|
||||
time go build -o test-binary main.go
|
||||
|
||||
- name: Run Test Binary
|
||||
run: ./test-binary
|
||||
Reference in New Issue
Block a user