1+ name : Build Layer ZIP
2+
3+ on :
4+ push :
5+ branches :
6+ - master
7+ pull_request :
8+ branches :
9+ - master
10+
11+ jobs :
12+ build :
13+ runs-on : ubuntu-latest
14+ steps :
15+ - name : Checkout
16+ uses : actions/checkout@v2
17+ with :
18+ fetch-depth : 0
19+ - name : Read version
20+ id : package_lock_json
21+ run : |
22+ content=$(cat ./package-lock.json)
23+ content="${content//'%'/'%25'}"
24+ content="${content//$'\n'/'%0A'}"
25+ content="${content//$'\r'/'%0D'}"
26+ echo "::set-output name=packageLockJson::$content"
27+ - name : Variables
28+ id : vars
29+ run : |
30+ sharp_version="${{ fromJSON(steps.package_lock_json.outputs.packageLockJson).dependencies.sharp.version }}"
31+ echo "::set-output name=sharp_version::$sharp_version"
32+
33+ release_exists="true"
34+ git show-ref --tags --quiet --verify -- "refs/tags/$sharp_version" || release_exists="false"
35+ echo "::set-output name=release_exists::$release_exists"
36+ - name : Build
37+ id : docker_build
38+ uses : docker/build-push-action@v2
39+ with :
40+ context : .
41+ file : ./Dockerfile
42+ tags : amazon-linux-sharp-layer:dev
43+ - name : Copy artifacts
44+ run : docker run -v "${{ github.workspace }}/dist":/dist amazon-linux-sharp-layer:dev
45+ - name : Upload artifacts
46+ uses : actions/upload-artifact@v2
47+ with :
48+ name : sharp-lambda-layer.zip
49+ path : dist/sharp-layer.zip
50+ if-no-files-found : error
51+ - name : Create release
52+ if : ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && steps.vars.outputs.release_exists == 'false' }}
53+ id : create_release
54+ uses : actions/create-release@v1
55+ env :
56+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
57+ with :
58+ tag_name : ${{ steps.vars.outputs.sharp_version }}
59+ release_name : Version ${{ steps.vars.outputs.sharp_version }}
60+ prerelease : ${{ contains(steps.vars.outputs.sharp_version, '-') }}
61+ - name : Upload release asset
62+ if : ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && steps.vars.outputs.release_exists == 'false' }}
63+ id : upload_release_asset
64+ uses : actions/upload-release-asset@v1
65+ env :
66+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
67+ with :
68+ upload_url : ${{ steps.create_release.outputs.upload_url }}
69+ asset_path : dist/sharp-layer.zip
70+ asset_name : sharp-lambda-layer.zip
71+ asset_content_type : application/zip
0 commit comments