-
Notifications
You must be signed in to change notification settings - Fork 47
132 lines (119 loc) · 5.33 KB
/
build.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
name: build
on:
push:
branches: [ "develop-ls-5.15.71-2.2.0" ]
pull_request:
branches: [ "develop-ls-5.15.71-2.2.0" ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
prepare_container:
runs-on: self-hosted
outputs:
uid: ${{ steps.uid_step.outputs.userid }}
gid: ${{ steps.uid_step.outputs.groupid }}
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- name: Get user id/group
id: uid_step
run: |
echo "userid=$(id -u)" >> "$GITHUB_OUTPUT"
echo "groupid=$(id -g)" >> "$GITHUB_OUTPUT"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
buildkitd-config: /etc/docker/cibuilder.toml
- name: Login to Docker Registry
uses: docker/login-action@v3
with:
registry: ciserver.ci:5000
username: ${{ secrets.CI_CACHE_REGISTRY_LOGIN }}
password: ${{ secrets.CI_CACHE_REGISTRY_PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v5
with:
context: docker
push: true
tags: ciserver.ci:5000/${{ github.repository_id }}:ls-5.15.71-2.2.0
cache-from: type=registry,ref=ciserver.ci:5000/${{ github.repository_id }}:cache
cache-to: type=registry,ref=ciserver.ci:5000/${{ github.repository_id }}:cache,mode=max
build-args: |
USER_ID=${{ steps.uid_step.outputs.userid }}
GROUP_ID=${{ steps.uid_step.outputs.groupid }}
build_images:
needs: prepare_container
runs-on: self-hosted
timeout-minutes: 1080
container:
image: ciserver.ci:5000/${{ github.repository_id }}:ls-5.15.71-2.2.0
credentials:
username: ${{ secrets.CI_CACHE_REGISTRY_LOGIN }}
password: ${{ secrets.CI_CACHE_REGISTRY_PASSWORD }}
options: --user "${{ needs.prepare_container.outputs.uid }}:${{ needs.prepare_container.outputs.gid }}"
outputs:
build_tag: ${{ steps.tag_step.outputs.build_tag }}
steps:
- name: Checkout pull-request version of lx2160a_build
uses: actions/checkout@v4
- name: Get build tag
shell: bash {0}
id: tag_step
run: |
build_tag=$(date +%Y-%m-%d)_$(git rev-parse --short HEAD)
echo "build_tag=$build_tag" >> "$GITHUB_OUTPUT"
- name: Build
shell: bash {0}
run: |
env SHALLOW=true BOOTSOURCE=auto BUS_SPEED=700 CPU_REVISION=2 CPU_SPEED=2000 DDR_SPEED=2400 TARGET=LX2160A_CEX7_CLEARFOG-CX_18_5_2 ./runme.sh
env SHALLOW=true BOOTSOURCE=auto BUS_SPEED=700 CPU_REVISION=2 CPU_SPEED=2000 DDR_SPEED=2600 TARGET=LX2160A_CEX7_CLEARFOG-CX_18_5_2 ./runme.sh
env SHALLOW=true BOOTSOURCE=auto BUS_SPEED=700 CPU_REVISION=2 CPU_SPEED=2000 DDR_SPEED=2900 TARGET=LX2160A_CEX7_CLEARFOG-CX_18_5_2 ./runme.sh
env SHALLOW=true BOOTSOURCE=auto BUS_SPEED=700 CPU_REVISION=2 CPU_SPEED=2000 DDR_SPEED=2400 TARGET=LX2160A_CEX7_HONEYCOMB_18_5_2 ./runme.sh
env SHALLOW=true BOOTSOURCE=auto BUS_SPEED=700 CPU_REVISION=2 CPU_SPEED=2000 DDR_SPEED=2600 TARGET=LX2160A_CEX7_HONEYCOMB_18_5_2 ./runme.sh
env SHALLOW=true BOOTSOURCE=auto BUS_SPEED=700 CPU_REVISION=2 CPU_SPEED=2000 DDR_SPEED=2900 TARGET=LX2160A_CEX7_HONEYCOMB_18_5_2 ./runme.sh
env SHALLOW=true BOOTSOURCE=auto BUS_SPEED=650 CPU_REVISION=2 CPU_SPEED=2000 DDR_SPEED=2900 TARGET=LX2162A_SOM_CLEARFOG_18_9_0 ./runme.sh
- name: Select artifacts for publishing
shell: bash -e {0}
run: |
mkdir deploy
cp -L images/linux-*.tar deploy/
cp -L images/linux-headers-*.tar deploy/
cp -L images/*.img deploy/
xz -9 deploy/*
ls -lh deploy
- name: Deploy to the local minio storage
uses: yakubique/[email protected]
with:
endpoint: http://ciserver.ci:9000
insecure: true
access_key: ${{ secrets.CI_CACHE_MINIO_ACCESS }}
secret_key: ${{ secrets.CI_CACHE_MINIO_SECRET }}
bucket: cipublish
source: ./deploy
target: "/${{ github.repository_id }}/${{ steps.tag_step.outputs.build_tag }}"
recursive: true
publish_images:
needs: build_images
runs-on: self-hosted
if: github.ref == 'refs/heads/develop-ls-5.15.71-2.2.0' && github.event_name != 'pull_request'
steps:
- name: Download an artifacts from MinIO
uses: yakubique/[email protected]
with:
endpoint: http://ciserver.ci:9000
insecure: true
access_key: ${{ secrets.CI_CACHE_MINIO_ACCESS }}
secret_key: ${{ secrets.CI_CACHE_MINIO_SECRET }}
bucket: cipublish
source: "/${{ github.repository_id }}/${{ needs.build_images.outputs.build_tag }}/"
target: "."
recursive: true
- name: Upload to S3
uses: shallwefootball/[email protected]
with:
aws_key_id: ${{ secrets.IMAGES_S3_ACCESS }}
aws_secret_access_key: ${{ secrets.IMAGES_S3_SECRET }}
aws_bucket: ${{ secrets.IMAGES_S3_BUCKET }}
endpoint: ${{ secrets.IMAGES_S3_HOST }}
source_dir: deploy
destination_dir: LX2k/lx2160a_build/ls-5.15.71-2.2.0/${{ needs.build_images.outputs.build_tag }}