@@ -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