Skip to content

Commit 02db738

Browse files
authored
feat(#21): deploy
1 parent 7bd9c76 commit 02db738

5 files changed

Lines changed: 106 additions & 92 deletions

File tree

.github/workflows/ci-main.yml

Lines changed: 25 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -20,40 +20,36 @@ jobs:
2020
~/.m2/repository
2121
key: ${{ runner.os }}-${{ hashFiles('**/pom.xml') }}
2222
- name: version
23-
run: >-
24-
APP_SHA=$(git rev-parse --short ${GITHUB_SHA});
25-
APP_REV=$(git rev-list --tags --max-count=1);
26-
APP_TAG=$(git describe --tags ${APP_REV} 2> /dev/null || echo 0.0.0);
27-
APP_VERSION=${APP_TAG}-${APP_SHA};
28-
echo "APP_SHA=${APP_SHA}" >> ${GITHUB_ENV};
29-
echo "APP_TAG=${APP_TAG}" >> ${GITHUB_ENV};
30-
echo "APP_VERSION=${APP_VERSION}" >> ${GITHUB_ENV};
23+
run: |-
24+
APP_SHA=$(git rev-parse --short ${GITHUB_SHA})
25+
APP_LATEST_REV=$(git rev-list --tags --max-count=1)
26+
APP_LATEST_TAG=$(git describe --tags ${APP_LATEST_REV} 2> /dev/null || echo 0.0.0)
27+
echo "APP_VERSION=${APP_LATEST_TAG}-${APP_SHA}" >> ${GITHUB_ENV}
3128
- name: mvn
32-
run: >-
33-
mvn versions:set
34-
--batch-mode
35-
--file ./pom.xml
36-
--settings ./settings.xml
37-
--define newVersion="${APP_VERSION}";
38-
mvn clean verify
39-
--batch-mode
40-
--file ./pom.xml
41-
--settings ./settings.xml
42-
--define app.packages.username="${APP_PACKAGES_USERNAME}"
43-
--define app.packages.password="${APP_PACKAGES_PASSWORD}";
29+
run: |-
30+
mvn versions:set \
31+
--batch-mode \
32+
--file ./pom.xml \
33+
--settings ./settings.xml \
34+
--define newVersion="${APP_VERSION}"
35+
mvn clean verify \
36+
--batch-mode \
37+
--file ./pom.xml \
38+
--settings ./settings.xml \
39+
--define app.packages.username="${APP_PACKAGES_USERNAME}" \
40+
--define app.packages.password="${APP_PACKAGES_PASSWORD}"
4441
env:
4542
APP_PACKAGES_USERNAME: ${{ github.actor }}
4643
APP_PACKAGES_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
4744
- name: docker
48-
run: >-
49-
echo "${APP_PACKAGES_PASSWORD}" |
50-
docker login "${APP_PACKAGES_URL}"
51-
--username "${APP_PACKAGES_USERNAME}"
52-
--password-stdin;
53-
docker build .
54-
--file ./Dockerfile
55-
--tag "${APP_PACKAGES_URL}:${APP_VERSION}";
56-
docker push "${APP_PACKAGES_URL}:${APP_VERSION}";
45+
run: |-
46+
echo "${APP_PACKAGES_PASSWORD}" | docker login "${APP_PACKAGES_URL}" \
47+
--username "${APP_PACKAGES_USERNAME}" \
48+
--password-stdin
49+
docker build . \
50+
--file ./Dockerfile \
51+
--tag "${APP_PACKAGES_URL}:${APP_VERSION}"
52+
docker push "${APP_PACKAGES_URL}:${APP_VERSION}"
5753
env:
5854
APP_PACKAGES_URL: docker.pkg.github.com/${{ github.repository }}/dgca-issuance-service
5955
APP_PACKAGES_USERNAME: ${{ github.actor }}

.github/workflows/ci-pull-request.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,17 @@ jobs:
2222
~/.m2/repository
2323
key: ${{ runner.os }}-${{ hashFiles('**/pom.xml') }}
2424
- name: mvn
25-
run: >-
26-
mvn clean package
27-
--batch-mode
28-
--file ./pom.xml
29-
--settings ./settings.xml
30-
--define app.packages.username="${APP_PACKAGES_USERNAME}"
31-
--define app.packages.password="${APP_PACKAGES_PASSWORD}";
25+
run: |-
26+
mvn clean package \
27+
--batch-mode \
28+
--file ./pom.xml \
29+
--settings ./settings.xml \
30+
--define app.packages.username="${APP_PACKAGES_USERNAME}" \
31+
--define app.packages.password="${APP_PACKAGES_PASSWORD}"
3232
env:
3333
APP_PACKAGES_USERNAME: ${{ github.actor }}
3434
APP_PACKAGES_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
3535
- name: docker
36-
run: >-
37-
docker build .
38-
--file ./Dockerfile;
36+
run: |-
37+
docker build . \
38+
--file ./Dockerfile

.github/workflows/ci-release-notes.yml

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,14 @@ on:
66
jobs:
77
release-notes:
88
runs-on: ubuntu-20.04
9+
env:
10+
APP_VERSION: ${{ github.event.release.tag_name }}
911
steps:
1012
- uses: actions/checkout@v2
1113
with:
1214
fetch-depth: 0
13-
- name: version
14-
run: >-
15-
APP_SHA=$(git rev-parse --short ${GITHUB_SHA});
16-
APP_TAG=${GITHUB_REF/refs\/tags\/}
17-
APP_VERSION=${APP_TAG};
18-
echo "APP_SHA=${APP_SHA}" >> ${GITHUB_ENV};
19-
echo "APP_TAG=${APP_TAG}" >> ${GITHUB_ENV};
20-
echo "APP_VERSION=${APP_VERSION}" >> ${GITHUB_ENV};
2115
- name: release-notes
22-
run: npx github-release-notes release --override --tags ${APP_TAG}
16+
run: npx github-release-notes release --override --tags ${APP_VERSION}
2317
env:
2418
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2519
GREN_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/ci-release.yml

Lines changed: 61 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@ on:
44
types:
55
- created
66
jobs:
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 }}

.github/workflows/ci-sonar.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ jobs:
2525
~/.m2/repository
2626
key: ${{ runner.os }}-${{ hashFiles('**/pom.xml') }}
2727
- name: mvn
28-
run: >-
29-
mvn verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
30-
--batch-mode
31-
--file ./pom.xml
32-
--settings ./settings.xml
33-
--define app.packages.username="${APP_PACKAGES_USERNAME}"
34-
--define app.packages.password="${APP_PACKAGES_PASSWORD}";
28+
run: |-
29+
mvn verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar \
30+
--batch-mode \
31+
--file ./pom.xml \
32+
--settings ./settings.xml \
33+
--define app.packages.username="${APP_PACKAGES_USERNAME}" \
34+
--define app.packages.password="${APP_PACKAGES_PASSWORD}"
3535
env:
3636
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
3737
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)