Skip to content

Commit f59a44b

Browse files
committed
Add caches in github actions
1 parent 4962208 commit f59a44b

File tree

1 file changed

+38
-9
lines changed

1 file changed

+38
-9
lines changed

.github/workflows/espresso-enclave-docker.yml

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,22 +57,51 @@ jobs:
5757
- name: Set up Docker Buildx
5858
uses: docker/setup-buildx-action@v3
5959

60+
# Log in to GitHub Container Registry
61+
- name: Log In to GitHub Container Registry
62+
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin
63+
64+
- run: mkdir -p ~/nitro-cache
65+
- id: nitro-cache
66+
uses: actions/cache@v4
67+
with:
68+
path: ~/nitro-cache
69+
key: nitro-cache-${{ runner.os }}
70+
6071
# Install AWS Nitro CLI
6172
- name: Install Nitro CLI
73+
if: steps.nitro-cache.outputs.cache-hit != 'true'
6274
run: |
6375
sudo apt install build-essential
6476
git clone https://github.com/aws/aws-nitro-enclaves-cli.git
6577
cd aws-nitro-enclaves-cli
6678
make nitro-cli
6779
sudo cp build/nitro_cli/release/nitro-cli /usr/bin
68-
sudo mkdir --mode=0777 -p /var/log/nitro_enclaves
80+
sudo cp build/nitro_cli/release/nitro-cli ~/nitro-cache/
6981
cd ..
7082
rm -rf aws-nitro-enclaves-cli
7183
docker system prune -f
7284
docker rmi nitro_cli:1.0
7385
74-
# Build AWS Nitro Enclave kernel
75-
- name: Build AWS Nitro Enclave kernel
86+
- if: steps.nitro-cache.outputs.cache-hit == 'true'
87+
run: sudo cp ~/nitro-cache/nitro-cli /usr/bin
88+
89+
- name: Create folder for logs
90+
run: |
91+
sudo mkdir --mode=0777 -p /var/log/nitro_enclaves
92+
93+
94+
- run: mkdir -p ~/nitro-kernel-cache
95+
- id: nitro-kernel-cache
96+
uses: actions/cache@v4
97+
with:
98+
path: ~/nitro-kernel-cache
99+
key: nitro-kernal-cache-${{ runner.os }}
100+
101+
# Install AWS Nitro Enclave kernel
102+
- run: sudo mkdir -p /usr/share/nitro_enclaves/blobs
103+
- name: Install Nitro CLI
104+
if: steps.nitro-kernel-cache.outputs.cache-hit != 'true'
76105
run: |
77106
git clone https://github.com/aws/aws-nitro-enclaves-sdk-bootstrap.git
78107
cd aws-nitro-enclaves-sdk-bootstrap
@@ -98,14 +127,18 @@ jobs:
98127
docker cp extract_blobs:/blobs ./blobs
99128
docker rm extract_blobs
100129
101-
sudo mkdir -p /usr/share/nitro_enclaves/blobs
102130
sudo cp blobs/* /usr/share/nitro_enclaves/blobs
131+
sudo cp blobs/* ~/nitro-kernel-cache
103132
104133
cd ..
105134
rm -rf aws-nitro-enclaves-sdk-bootstrap
106135
docker system prune -f
107136
docker rmi blobs_all:latest
108-
137+
138+
- if: steps.nitro-kernel-cache.outputs.cache-hit == 'true'
139+
run: sudo cp ~/nitro-kernel-cache/* /usr/share/nitro_enclaves/blobs
140+
141+
109142
# Check out the code
110143
- name: Checkout Code
111144
uses: actions/checkout@v4
@@ -130,10 +163,6 @@ jobs:
130163
run: |
131164
nitro-cli build-enclave --docker-uri nitro-node-enclave:latest --output-file output/nitro.eif
132165
133-
# Log in to GitHub Container Registry
134-
- name: Log In to GitHub Container Registry
135-
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin
136-
137166
# Build and push the enclave Docker image
138167
- name: Build and Push Enclave Docker Image
139168
run: |

0 commit comments

Comments
 (0)