Skip to content

Create apiserver binary and upload it to s3 bucket #1

Create apiserver binary and upload it to s3 bucket

Create apiserver binary and upload it to s3 bucket #1

Workflow file for this run

name: build
on:
push:
branches: ["main"]
paths:
- 'api-server/**'
pull_request:
branches: ["main"]
paths:
- 'api-server/**'
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
go-fmt:
runs-on: ubuntu-latest
env:
CGO_ENABLED: 1
defaults:
run:
working-directory: api-server
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.21.6'
- name: Install Build Dependencies
run: |
sudo apt-get update
sudo apt-get install -y build-essential pkg-config
- name: Install Go Dependencies
run: |
go mod download
- name: Go Format
run: |
unformatted=$(gofmt -l .)
if [ -n "$unformatted" ]; then
echo "The following files are not formatted properly:"
echo "$unformatted"
exit 1
fi
build-packages:
needs: [ go-fmt ]
runs-on: ubuntu-latest
defaults:
run:
working-directory: api-server
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.21.6'
- name: Build nexodus packages
id: build
shell: bash
run: |
make -j dist/packages
- name: Upload nexodus zip packages
uses: actions/upload-artifact@v4
with:
name: apiserver-packages-zip
if-no-files-found: error
path: |
dist/packages/*.zip
- name: Upload nexodus tar.gz packages
uses: actions/upload-artifact@v4
with:
name: apiserver-packages-tar
if-no-files-found: error
path: |
dist/packages/*.tar.gz
upload-s3-packages:
needs: ["build-packages"]
permissions:
id-token: write
contents: read
runs-on: ubuntu-latest
environment: image-repositories
if: github.ref == 'refs/heads/main'
steps:
- name: download zip binary artifacts
uses: actions/download-artifact@v4
with:
name: apiserver-packages-zip
path: dist/packages
- name: download tar.gz binary artifacts
uses: actions/download-artifact@v4
with:
name: apiserver-packages-tar
path: dist/packages
- name: Display structure of downloaded files
run: ls -lah -R
working-directory: dist/packages
- name: configure aws credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.AWS_ROLE }}
role-session-name: apiserver-ci-deploy
aws-region: us-east-1
- name: copy binaries to s3
run: |
aws s3 sync dist/packages s3://instructlab-io/apiserver
build-workflow-complete:
needs: ["build-packages", "upload-s3-packages"]
runs-on: ubuntu-latest
steps:
- name: Build Complete
run: echo "Build Complete"