Skip to content

Commit 2cd30b3

Browse files
committed
Add build branch workflow
1 parent 955c739 commit 2cd30b3

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

.github/workflows/build_branch.yml

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
name: Build branch for docker
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
branch:
7+
description: "Branch to build"
8+
required: true
9+
10+
env:
11+
AWS_REGION: us-west-1
12+
AWS_ROLE: ${{ vars.EC2_GITHUB_RUNNER_ROLE }}
13+
BRANCH_NAME: ${{ github.event.inputs.branch }}
14+
REGISTRY_IMAGE: oxen/oxen-server
15+
16+
permissions:
17+
id-token: write
18+
contents: write
19+
20+
jobs:
21+
start-self-hosted-runner:
22+
name: Start self-hosted EC2 runner
23+
runs-on: ubuntu-latest
24+
outputs:
25+
label: ${{ steps.start-ec2-runner.outputs.label }}
26+
ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }}
27+
28+
steps:
29+
- name: Configure AWS credentials
30+
uses: aws-actions/configure-aws-credentials@v4
31+
with:
32+
role-to-assume: ${{ env.AWS_ROLE }}
33+
role-duration-seconds: 900
34+
aws-region: ${{ env.AWS_REGION }}
35+
36+
- name: Start EC2 runner
37+
id: start-ec2-runner
38+
uses: machulav/ec2-github-runner@v2
39+
with:
40+
mode: start
41+
github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
42+
ec2-image-id: ${{ vars.EC2_IMAGE_ID }}
43+
ec2-instance-type: m7g.4xlarge
44+
subnet-id: ${{ vars.SUBNET_ID }}
45+
security-group-id: ${{ vars.SECURITY_GROUP_ID }}
46+
aws-resource-tags: >
47+
[
48+
{"Key": "Name", "Value": "ec2-github-runner"}
49+
]
50+
51+
release_docker_arm64:
52+
needs: start-self-hosted-runner
53+
runs-on: ${{ needs.start-self-hosted-runner.outputs.label }}
54+
55+
steps:
56+
- name: Checkout
57+
uses: actions/checkout@v4
58+
with:
59+
ref: ${{ env.BRANCH_NAME }}
60+
61+
- name: Set release version
62+
run: |
63+
echo "RELEASE_VERSION=${BRANCH_NAME}-$(date +'%Y-%m-%d-%H_%M_%S')" >> $GITHUB_ENV
64+
65+
- name: Build Docker Image
66+
run: docker build -t oxen/oxen-server .
67+
68+
- name: Save Docker
69+
run: docker save oxen/oxen-server -o oxen-server-docker-arm64-${{ env.RELEASE_VERSION }}.tar
70+
71+
- name: Upload Artifact
72+
uses: actions/upload-artifact@v4
73+
with:
74+
name: oxen-server-docker-arm64-${{ env.RELEASE_VERSION }}.tar
75+
path: oxen-server-docker-arm64-${{ env.RELEASE_VERSION }}.tar
76+
retention-days: 1

0 commit comments

Comments
 (0)