Skip to content

Merge pull request #558 from vishnoianil/api-server-int #143

Merge pull request #558 from vishnoianil/api-server-int

Merge pull request #558 from vishnoianil/api-server-int #143

Workflow file for this run

name: api-server
on:
push:
branches:
- main
- release-1.0
paths:
- 'api-server/**'
pull_request:
branches:
- main
- release-1.0
paths:
- 'api-server/**'
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
fmt-build-test:
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
- name: Build
run: |
go build ./...
build-darwin-packages:
needs: [ fmt-build-test ]
runs-on: macos-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 apiserver darwin packages
id: build
shell: bash
run: |
make -j dist/packages
- name: Upload apiserver tar.gz packages
uses: actions/upload-artifact@v4
with:
name: apiserver-darwin-packages-tar
if-no-files-found: error
path: |
./api-server/dist/packages/*.tar.gz
upload-s3-darwin-packages:
needs: ["build-darwin-packages"]
permissions:
id-token: write
contents: read
runs-on: ubuntu-latest
environment: registry-creds
if: ${{ github.event_name == 'push' }}
steps:
- name: download tar.gz binary artifacts
uses: actions/download-artifact@v4
with:
name: apiserver-darwin-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-ui/apiserver
build-linux-packages:
needs: [ fmt-build-test ]
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 apiserver packages
id: build
shell: bash
run: |
make -j dist/packages
- name: Upload apiserver tar.gz packages
uses: actions/upload-artifact@v4
with:
name: apiserver-linux-packages-tar
if-no-files-found: error
path: |
./api-server/dist/packages/*.tar.gz
upload-s3-linux-packages:
needs: ["build-linux-packages"]
permissions:
id-token: write
contents: read
runs-on: ubuntu-latest
environment: registry-creds
if: ${{ github.event_name == 'push' }}
steps:
- name: download tar.gz binary artifacts
uses: actions/download-artifact@v4
with:
name: apiserver-linux-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-ui/apiserver