44 types :
55 - created
66jobs :
7- release :
7+ build :
88 runs-on : ubuntu-20.04
9+ env :
10+ APP_VERSION : ${{ github.event.release.tag_name }}
911 steps :
1012 - uses : actions/setup-java@v2
1113 with :
@@ -19,51 +21,73 @@ jobs:
1921 path : |
2022 ~/.m2/repository
2123 key : ${{ runner.os }}-${{ hashFiles('**/pom.xml') }}
22- - name : version
23- run : >-
24- APP_SHA=$(git rev-parse --short ${GITHUB_SHA});
25- APP_TAG=${GITHUB_REF/refs\/tags\/}
26- APP_VERSION=${APP_TAG};
27- echo "APP_SHA=${APP_SHA}" >> ${GITHUB_ENV};
28- echo "APP_TAG=${APP_TAG}" >> ${GITHUB_ENV};
29- echo "APP_VERSION=${APP_VERSION}" >> ${GITHUB_ENV};
3024 - name : mvn
31- run : > -
32- mvn versions:set
33- --batch-mode
34- --file ./pom.xml
35- --settings ./settings.xml
36- --define newVersion="${APP_VERSION}";
37- mvn clean deploy
38- --batch-mode
39- --file ./pom.xml
40- --settings ./settings.xml
41- --define app.packages.username="${APP_PACKAGES_USERNAME}"
42- --define app.packages.password="${APP_PACKAGES_PASSWORD}";
25+ run : | -
26+ mvn versions:set \
27+ --batch-mode \
28+ --file ./pom.xml \
29+ --settings ./settings.xml \
30+ --define newVersion="${APP_VERSION}"
31+ mvn clean deploy \
32+ --batch-mode \
33+ --file ./pom.xml \
34+ --settings ./settings.xml \
35+ --define app.packages.username="${APP_PACKAGES_USERNAME}" \
36+ --define app.packages.password="${APP_PACKAGES_PASSWORD}"
4337 env :
4438 APP_PACKAGES_USERNAME : ${{ github.actor }}
4539 APP_PACKAGES_PASSWORD : ${{ secrets.GITHUB_TOKEN }}
4640 - name : docker
47- run : >-
48- echo "${APP_PACKAGES_PASSWORD}" |
49- docker login "${APP_PACKAGES_URL}"
50- --username "${APP_PACKAGES_USERNAME}"
51- --password-stdin;
52- docker build .
53- --file ./Dockerfile
54- --tag "${APP_PACKAGES_URL}:latest"
55- --tag "${APP_PACKAGES_URL}:${APP_VERSION}";
56- docker push "${APP_PACKAGES_URL}:latest";
57- docker push "${APP_PACKAGES_URL}:${APP_VERSION}";
41+ run : |-
42+ echo "${APP_PACKAGES_PASSWORD}" | docker login "${APP_PACKAGES_URL}" \
43+ --username "${APP_PACKAGES_USERNAME}" \
44+ --password-stdin
45+ docker build . \
46+ --file ./Dockerfile \
47+ --tag "${APP_PACKAGES_URL}:latest" \
48+ --tag "${APP_PACKAGES_URL}:${APP_VERSION}"
49+ docker push "${APP_PACKAGES_URL}:latest"
50+ docker push "${APP_PACKAGES_URL}:${APP_VERSION}"
5851 env :
5952 APP_PACKAGES_URL : docker.pkg.github.com/${{ github.repository }}/dgca-issuance-service
6053 APP_PACKAGES_USERNAME : ${{ github.actor }}
6154 APP_PACKAGES_PASSWORD : ${{ secrets.GITHUB_TOKEN }}
6255 - name : assets
63- run : > -
64- gh release upload ${APP_TAG}
65- --clobber
66- ./target/openapi.json#openapi-${APP_TAG }.json
67- ./target/generated-resources/licenses.xml#licenses-${APP_TAG }.xml
56+ run : | -
57+ gh release upload ${APP_VERSION} \
58+ --clobber \
59+ ./target/openapi.json#openapi-${APP_VERSION }.json \
60+ ./target/generated-resources/licenses.xml#licenses-${APP_VERSION }.xml
6861 env :
6962 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
63+ deploy :
64+ runs-on : ubuntu-20.04
65+ environment : dev
66+ needs :
67+ - build
68+ env :
69+ APP_VERSION : ${{ github.event.release.tag_name }}
70+ steps :
71+ - name : cf setup
72+ run : |-
73+ curl -sL "https://packages.cloudfoundry.org/stable?release=${CF_RELEASE}&version=${CF_VERSION}" | \
74+ sudo tar -zx -C /usr/local/bin
75+ env :
76+ CF_VERSION : 7.2.0
77+ CF_RELEASE : linux64-binary
78+ - name : cf push
79+ run : |-
80+ cf api ${CF_API}
81+ cf auth
82+ cf target -o ${CF_ORG} -s ${CF_SPACE}
83+ cf push ${APP_NAME} --docker-image ${APP_IMAGE}:${APP_VERSION} --docker-username ${CF_DOCKER_USERNAME}
84+ env :
85+ APP_NAME : dgca-issuance-service
86+ APP_IMAGE : docker.pkg.github.com/${{ github.repository }}/dgca-issuance-service
87+ CF_API : ${{ secrets.CF_API }}
88+ CF_ORG : ${{ secrets.CF_ORG }}
89+ CF_SPACE : ${{ secrets.CF_SPACE }}
90+ CF_USERNAME : ${{ secrets.CF_USERNAME }}
91+ CF_PASSWORD : ${{ secrets.CF_PASSWORD }}
92+ CF_DOCKER_USERNAME : ${{ github.actor }}
93+ CF_DOCKER_PASSWORD : ${{ secrets.GITHUB_TOKEN }}
0 commit comments