Skip to content

Commit ed9e9a4

Browse files
ci: build lambda artifacts for both architectures (#120)
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
1 parent d4dfb31 commit ed9e9a4

1 file changed

Lines changed: 40 additions & 31 deletions

File tree

.github/workflows/lambda-release.yml

Lines changed: 40 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -9,48 +9,57 @@ on:
99
env:
1010
CARGO_TERM_COLOR: always
1111

12+
permissions:
13+
contents: read
14+
1215
jobs:
13-
build-and-release:
14-
runs-on: ubuntu-24.04-arm
15-
permissions:
16-
contents: write
16+
build-lambda-artifacts:
17+
runs-on: ${{ matrix.runner }}
18+
strategy:
19+
fail-fast: true
20+
matrix:
21+
include:
22+
- runner: ubuntu-24.04
23+
lambda_arch: x86_64
24+
rust_target: x86_64-unknown-linux-gnu
25+
cargo_lambda_arch_arg: ''
26+
- runner: ubuntu-24.04-arm
27+
lambda_arch: arm64
28+
rust_target: aarch64-unknown-linux-gnu
29+
cargo_lambda_arch_arg: '--arm64'
1730
steps:
18-
- uses: actions/checkout@v4
31+
- uses: actions/checkout@v5
1932

2033
- name: Install Rust toolchain
2134
uses: dtolnay/rust-toolchain@stable
2235
with:
23-
targets: aarch64-unknown-linux-gnu
36+
targets: ${{ matrix.rust_target }}
37+
38+
- uses: Swatinem/rust-cache@v2
2439

2540
- name: Install cargo-lambda
2641
run: pip install cargo-lambda
2742

28-
- name: Cache cargo registry and build
29-
uses: actions/cache@v4
30-
with:
31-
path: |
32-
~/.cargo/registry
33-
~/.cargo/git
34-
target
35-
key: lambda-${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
43+
- name: Compute artifact version
44+
id: artifact_version
45+
shell: bash
46+
run: |
47+
if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then
48+
echo "value=${GITHUB_REF_NAME}" >> "$GITHUB_OUTPUT"
49+
else
50+
echo "value=${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
51+
fi
3652
3753
- name: Build Lambda zip
38-
run: cargo lambda build --release -F state-store-query -p embucket-lambda --arm64 -o zip
39-
40-
- name: Upload to S3
41-
env:
42-
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
43-
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
44-
AWS_DEFAULT_REGION: us-east-2
4554
run: |
46-
VERSION=${GITHUB_REF_NAME:-latest}
47-
aws s3 cp target/lambda/embucket-lambda/bootstrap.zip \
48-
s3://embucket-releases/lambda/embucket-lambda-${VERSION}.zip
49-
aws s3 cp target/lambda/embucket-lambda/bootstrap.zip \
50-
s3://embucket-releases/lambda/embucket-lambda-latest.zip
51-
52-
- name: Attach to GitHub Release
53-
if: startsWith(github.ref, 'refs/tags/')
54-
uses: softprops/action-gh-release@v2
55+
cargo lambda build --release -F state-store-query -p embucket-lambda ${{ matrix.cargo_lambda_arch_arg }} --output-format zip --lambda-dir dist/${{ matrix.lambda_arch }} --flatten bootstrap
56+
cp dist/${{ matrix.lambda_arch }}/bootstrap.zip dist/embucket-lambda-${{ steps.artifact_version.outputs.value }}-${{ matrix.lambda_arch }}.zip
57+
58+
- name: Upload Lambda artifact
59+
uses: actions/upload-artifact@v5
5560
with:
56-
files: target/lambda/embucket-lambda/bootstrap.zip
61+
name: lambda-${{ steps.artifact_version.outputs.value }}-${{ matrix.lambda_arch }}
62+
path: dist/embucket-lambda-${{ steps.artifact_version.outputs.value }}-${{ matrix.lambda_arch }}.zip
63+
if-no-files-found: error
64+
retention-days: 7
65+
compression-level: 0

0 commit comments

Comments
 (0)