forked from lambgeo/docker-lambda
-
Notifications
You must be signed in to change notification settings - Fork 0
135 lines (116 loc) · 3.79 KB
/
Copy pathci.yml
File metadata and controls
135 lines (116 loc) · 3.79 KB
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
133
134
135
name: CI
permissions:
packages: write
on:
push:
paths:
- 'dockerfiles/**'
- 'scripts/deploy.py'
- 'scripts/create-layer.sh'
- 'tests/*'
- '.github/workflows/ci.yml'
branches:
- master
tags:
- '*'
pull_request:
jobs:
build:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[skip ci]')"
strategy:
matrix:
gdal-version: [ 3.6 ]
steps:
- uses: actions/checkout@v3
- name: set lower case owner name
run: |
echo "OWNER_LC=${OWNER,,}" >>${GITHUB_ENV}
env:
OWNER: "${{ github.repository_owner }}"
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install boto3 click
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Github
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.PACKAGE_TOKEN }}
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: eu-central-1
- name: Build
uses: docker/build-push-action@v4
with:
platforms: linux/amd64
context: .
load: true
file: dockerfiles/Dockerfile.gdal${{ matrix.gdal-version }}
tags: ghcr.io/${{ env.OWNER_LC }}/lambda-gdal:${{ matrix.gdal-version }}
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Test
run: |
docker run \
--platform=linux/amd64 \
--entrypoint bash \
-v ${{ github.workspace }}:/local \
--rm ghcr.io/${{ env.OWNER_LC }}/lambda-gdal:${{ matrix.gdal-version }} \
/local/tests/tests.sh
- name: Publish docker image
uses: docker/build-push-action@v4
if: github.ref == 'refs/heads/master'
with:
platforms: linux/amd64
context: .
file: dockerfiles/Dockerfile.gdal${{ matrix.gdal-version }}
push: true
cache-from: type=gha
tags: ghcr.io/${{ env.OWNER_LC }}/lambda-gdal:${{ matrix.gdal-version }}
- name: Build and Deploy layers
if: github.ref == 'refs/heads/master'
run: |
docker run \
--platform=linux/amd64 \
--entrypoint bash \
-v ${{ github.workspace }}:/local \
--rm ghcr.io/${{ env.OWNER_LC }}/lambda-gdal:${{ matrix.gdal-version }} \
/local/scripts/create-layer.sh
python scripts/deploy.py ${{ matrix.gdal-version }} --deploy
update-layer:
needs: [ build ]
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
- uses: actions/setup-node@v1
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: eu-central-1
- name: List layers
run: |
python scripts/list.py | jq > layer.json
- name: Update resources
uses: test-room-7/action-update-file@v1
with:
file-path: layer.json
commit-msg: Update layer [skip ci]
github-token: ${{ secrets.PACKAGE_TOKEN }}