@@ -57,22 +57,51 @@ jobs:
57
57
- name : Set up Docker Buildx
58
58
uses : docker/setup-buildx-action@v3
59
59
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
+
60
71
# Install AWS Nitro CLI
61
72
- name : Install Nitro CLI
73
+ if : steps.nitro-cache.outputs.cache-hit != 'true'
62
74
run : |
63
75
sudo apt install build-essential
64
76
git clone https://github.com/aws/aws-nitro-enclaves-cli.git
65
77
cd aws-nitro-enclaves-cli
66
78
make nitro-cli
67
79
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/
69
81
cd ..
70
82
rm -rf aws-nitro-enclaves-cli
71
83
docker system prune -f
72
84
docker rmi nitro_cli:1.0
73
85
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'
76
105
run : |
77
106
git clone https://github.com/aws/aws-nitro-enclaves-sdk-bootstrap.git
78
107
cd aws-nitro-enclaves-sdk-bootstrap
@@ -98,14 +127,18 @@ jobs:
98
127
docker cp extract_blobs:/blobs ./blobs
99
128
docker rm extract_blobs
100
129
101
- sudo mkdir -p /usr/share/nitro_enclaves/blobs
102
130
sudo cp blobs/* /usr/share/nitro_enclaves/blobs
131
+ sudo cp blobs/* ~/nitro-kernel-cache
103
132
104
133
cd ..
105
134
rm -rf aws-nitro-enclaves-sdk-bootstrap
106
135
docker system prune -f
107
136
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
+
109
142
# Check out the code
110
143
- name : Checkout Code
111
144
uses : actions/checkout@v4
@@ -130,10 +163,6 @@ jobs:
130
163
run : |
131
164
nitro-cli build-enclave --docker-uri nitro-node-enclave:latest --output-file output/nitro.eif
132
165
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
-
137
166
# Build and push the enclave Docker image
138
167
- name : Build and Push Enclave Docker Image
139
168
run : |
0 commit comments