Skip to content

Commit 9e0d610

Browse files
authored
vnext - Major revamp (#88)
* Migration to dotnet 6 * Multi-arch pipeline * Fix helm chart location * Migrated to GitHub Actions
1 parent 606f6e9 commit 9e0d610

File tree

103 files changed

+1645
-1818
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

103 files changed

+1645
-1818
lines changed

.devops/pipelines/jobs.ci.build.docker.yaml

Lines changed: 0 additions & 51 deletions
This file was deleted.

.devops/pipelines/stage.cd.yaml

Lines changed: 0 additions & 74 deletions
This file was deleted.

.devops/pipelines/stage.ci.yaml

Lines changed: 0 additions & 66 deletions
This file was deleted.

.github/workflows/pipeline.yaml

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
name: Pipeline
2+
3+
on:
4+
push:
5+
paths:
6+
- "src/**"
7+
- ".github/workflows/**"
8+
pull_request:
9+
paths:
10+
- "src/**"
11+
- ".github/workflows/**"
12+
13+
env:
14+
version: 5.1.${{github.run_number}}
15+
imageRepository: "emberstack/sftp"
16+
DOCKER_CLI_EXPERIMENTAL: "enabled"
17+
18+
19+
jobs:
20+
ci:
21+
name: CI
22+
runs-on: ubuntu-latest
23+
steps:
24+
25+
- name: tools - helm - install
26+
uses: azure/setup-helm@v1
27+
28+
- name: tools - docker - login
29+
uses: docker/login-action@v1
30+
with:
31+
username: ${{ secrets.ES_DOCKERHUB_USERNAME }}
32+
password: ${{ secrets.ES_DOCKERHUB_PAT }}
33+
34+
- name: checkout
35+
uses: actions/checkout@v2
36+
37+
- name: artifacts - prepare directories
38+
run: |
39+
mkdir -p .artifacts/helm
40+
41+
- name: helm - import README
42+
run: cp README.md src/helm/sftp/README.md
43+
44+
- name: helm - package chart
45+
run: helm package --destination .artifacts/helm --version ${{env.version}} --app-version ${{env.version}} src/helm/sftp
46+
47+
- name: "artifacts - upload - helm chart"
48+
uses: actions/upload-artifact@v2
49+
with:
50+
name: helm
51+
path: .artifacts/helm
52+
53+
54+
- name: "docker - build and publish"
55+
run: |
56+
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
57+
docker buildx create --name builder --driver docker-container --use
58+
docker buildx inspect --bootstrap
59+
docker buildx build --push --platform linux/amd64 -t ${{env.imageRepository}}:build-${{env.version}}-amd64 -f src/ES.SFTP/Dockerfile src/
60+
docker buildx build --push --platform linux/arm -t ${{env.imageRepository}}:build-${{env.version}}-arm32v7 -f src/ES.SFTP/Dockerfile src/
61+
docker buildx build --push --platform linux/arm64 -t ${{env.imageRepository}}:build-${{env.version}}-arm64v8 -f src/ES.SFTP/Dockerfile src/
62+
docker pull ${{env.imageRepository}}:build-${{env.version}}-amd64
63+
docker pull ${{env.imageRepository}}:build-${{env.version}}-arm32v7
64+
docker pull ${{env.imageRepository}}:build-${{env.version}}-arm64v8
65+
docker manifest create ${{env.imageRepository}}:build-${{env.version}} ${{env.imageRepository}}:build-${{env.version}}-amd64 ${{env.imageRepository}}:build-${{env.version}}-arm32v7 ${{env.imageRepository}}:build-${{env.version}}-arm64v8
66+
docker manifest inspect ${{env.imageRepository}}:build-${{env.version}}
67+
docker manifest push ${{env.imageRepository}}:build-${{env.version}}
68+
69+
cd:
70+
name: CD
71+
needs: ci
72+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
73+
runs-on: ubuntu-latest
74+
steps:
75+
- name: tools - helm - install
76+
uses: azure/setup-helm@v1
77+
78+
- name: tools - docker - login
79+
uses: docker/login-action@v1
80+
with:
81+
username: ${{ secrets.ES_DOCKERHUB_USERNAME }}
82+
password: ${{ secrets.ES_DOCKERHUB_PAT }}
83+
84+
- name: artifacts - download - helm chart
85+
uses: actions/download-artifact@v2
86+
with:
87+
name: helm
88+
path: .artifacts/helm
89+
90+
- name: "docker - tag and push"
91+
run: |
92+
docker pull ${{env.imageRepository}}:build-${{env.version}}-amd64
93+
docker pull ${{env.imageRepository}}:build-${{env.version}}-arm32v7
94+
docker pull ${{env.imageRepository}}:build-${{env.version}}-arm64v8
95+
docker manifest create ${{env.imageRepository}}:${{env.version}} ${{env.imageRepository}}:build-${{env.version}}-amd64 ${{env.imageRepository}}:build-${{env.version}}-arm32v7 ${{env.imageRepository}}:build-${{env.version}}-arm64v8
96+
docker manifest create ${{env.imageRepository}}:latest ${{env.imageRepository}}:build-${{env.version}}-amd64 ${{env.imageRepository}}:build-${{env.version}}-arm32v7 ${{env.imageRepository}}:build-${{env.version}}-arm64v8
97+
docker manifest push ${{env.imageRepository}}:${{env.version}}
98+
docker manifest push ${{env.imageRepository}}:latest
99+
docker manifest push ${{env.imageRepository}}:${{env.version}}
100+
docker manifest push ${{env.imageRepository}}:latest
101+
docker tag ${{env.imageRepository}}:build-${{env.version}}-amd64 ${{env.imageRepository}}:${{env.version}}-amd64
102+
docker tag ${{env.imageRepository}}:build-${{env.version}}-arm32v7 ${{env.imageRepository}}:${{env.version}}-arm32v7
103+
docker tag ${{env.imageRepository}}:build-${{env.version}}-arm64v8 ${{env.imageRepository}}:${{env.version}}-arm64v8
104+
docker push ${{env.imageRepository}}:${{env.version}}-amd64
105+
docker push ${{env.imageRepository}}:${{env.version}}-arm32v7
106+
docker push ${{env.imageRepository}}:${{env.version}}-arm64v8
107+
108+
- name: github - checkout - helm-charts
109+
uses: actions/checkout@v2
110+
with:
111+
repository: emberstack/helm-charts
112+
token: ${{ secrets.ES_GITHUB_PAT }}
113+
path: helm-charts
114+
115+
116+
- name: github - publish - chart
117+
run: |
118+
mkdir -p helm-charts/charts
119+
cp .artifacts/helm/sftp-${{env.version}}.tgz helm-charts/charts
120+
121+
cd helm-charts
122+
rm -f index.yaml
123+
helm repo index ./
124+
125+
git config user.name "Romeo Dumitrescu"
126+
git config user.email "5931333+winromulus@users.noreply.github.com"
127+
git add .
128+
git status
129+
git commit -m "Added sftp-${{env.version}}.tgz"
130+
git push
131+
132+
- name: github - create release
133+
uses: softprops/action-gh-release@v1
134+
with:
135+
tag_name: v${{env.version}}
136+
body: The release process is automated.
137+
token: ${{ secrets.ES_GITHUB_PAT }}
138+

azure-pipelines.yaml

Lines changed: 0 additions & 35 deletions
This file was deleted.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)