Skip to content

Commit

Permalink
[CHORE] Add Workflow to build artifacts and upload to S3 (#1491)
Browse files Browse the repository at this point in the history
  • Loading branch information
samster25 authored Oct 13, 2023
1 parent fac11a4 commit 8b5386b
Show file tree
Hide file tree
Showing 2 changed files with 95 additions and 1 deletion.
95 changes: 95 additions & 0 deletions .github/workflows/build-artifact-s3.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
name: daft-build-artifact-s3

on:
workflow_dispatch:
inputs:
rust-profile:
description: Profile to compile with
required: true
default: release-lto
type: choice
options:
- release-lto
- release

env:
PACKAGE_NAME: getdaft
PYTHON_VERSION: 3.8

jobs:
build-and-push:
name: platform wheels for ${{ matrix.os }}-${{ matrix.compile_arch }}
runs-on: ${{ matrix.os }}-latest
strategy:
fail-fast: false
matrix:
os: [ubuntu]
compile_arch: [x86_64, aarch64]
# These permissions are needed to interact with GitHub's OIDC Token endpoint.
# This is used in the step "Assume GitHub Actions AWS Credentials"
permissions:
id-token: write
contents: read
steps:
- uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
- name: Assume GitHub Actions AWS Credentials
uses: aws-actions/configure-aws-credentials@v3
with:
aws-region: us-west-2
role-to-assume: ${{ secrets.ACTIONS_AWS_ROLE_ARN }}
role-session-name: DaftPythonPackageGitHubWorkflow
- uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
architecture: x64
- run: pip install -U toml
- run: python tools/patch_package_version.py
- name: Build wheels - Linux x86
if: ${{ (matrix.os == 'ubuntu') && (matrix.compile_arch == 'x86_64') }}
uses: messense/maturin-action@v1
with:
target: x86_64
manylinux: auto
args: --profile ${{ inputs.rust-profile }} --out dist
before-script-linux: yum -y install perl-IPC-Cmd
env:
RUSTFLAGS: -C target-feature=+fxsr,+sse,+sse2,+sse3,+ssse3,+sse4.1,+sse4.2,+popcnt,+avx,+fma
- name: Build wheels - Linux aarch64
if: ${{ (matrix.os == 'ubuntu') && (matrix.compile_arch == 'aarch64') }}
uses: messense/maturin-action@v1
with:
target: aarch64-unknown-linux-gnu
manylinux: auto
# GCC 4.8.5 in manylinux2014 container doesn't support c11 atomic. This caused issues with the `ring` crate that causes TLS to fail
container: messense/manylinux_2_24-cross:aarch64
args: --profile ${{ inputs.rust-profile }} --out dist
before-script-linux: export JEMALLOC_SYS_WITH_LG_PAGE=16

- name: Copy all files as zip for Glue
run: for foo in dist/*.whl; do cp $foo dist/`basename $foo .whl`.zip; done

- name: Upload wheels to s3
run: aws s3 cp dist/* s3://github-actions-artifacts-bucket/daft-build-artifact-s3/${{ github.sha }}/ --no-progress


list-wheels:
name: List Wheels and Zip files Published to S3
runs-on: ubuntu-latest
needs:
- build-and-push

permissions:
id-token: write
contents: read
steps:
- name: Assume GitHub Actions AWS Credentials
uses: aws-actions/configure-aws-credentials@v3
with:
aws-region: us-west-2
role-to-assume: ${{ secrets.ACTIONS_AWS_ROLE_ARN }}
role-session-name: DaftPythonPackageGitHubWorkflow
- name: List Wheels
run: aws s3 ls s3://github-actions-artifacts-bucket/daft-build-artifact-s3/${{ github.sha }}/
1 change: 0 additions & 1 deletion .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ on:
branches: [main]
pull_request:
branches: [main]

env:
DAFT_ANALYTICS_ENABLED: '0'

Expand Down

0 comments on commit 8b5386b

Please sign in to comment.