Refactor build workflow to use newer version of upload artifact #7
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: Build WASM Package | |
on: | |
release: | |
types: | |
- created | |
push: | |
jobs: | |
build: | |
name: Build WASM Package | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: '1.23' | |
- name: Setup Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- name: Install Brotli | |
run: npm install -g brotli | |
- name: Install Binaryen (wasm-opt) | |
run: | | |
wget https://github.com/WebAssembly/binaryen/releases/download/version_113/binaryen-version_113-x86_64-linux.tar.gz | |
tar -xzf binaryen-version_113-x86_64-linux.tar.gz | |
sudo cp -r binaryen-version_113/* /usr/local/ | |
- name: Build WASM | |
env: | |
GOOS: js | |
GOARCH: wasm | |
run: go build -ldflags="-X main.Layer8Scheme=${{ vars.LAYER8_PROXY_SCHEME }} -X main.Layer8Host=${{ vars.LAYER8_PROXY_DOMAIN }} -X main.Layer8Port=${{ vars.LAYER8_PROXY_PORT }}" -o ./bin/interceptor.wasm ./interceptor.go | |
- name: Optimize WASM | |
run: wasm-opt -O3 bin/interceptor.wasm -o bin/interceptor.wasm --enable-bulk-memory | |
- name: Compress WASM | |
run: brotli -q 11 -o bin/interceptor.wasm.br bin/interceptor.wasm | |
- name: Upload WASM | |
uses: actions/upload-artifact@v4 | |
with: | |
name: interceptor | |
path: bin | |
s3: | |
name: Upload WASM Package to CDN | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
name: interceptor | |
- name: Set up AWS credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
aws-access-key-id: ${{ vars.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: ${{ vars.AWS_REGION }} | |
- name: Upload WASM to S3 | |
run: aws s3 cp bin/interceptor.wasm s3://layer8-interceptor/${{ github.sha }}.wasm | |