diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 56cdf219..9ae68fff 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -83,6 +83,20 @@ jobs: path: ${{ env.BUILD_TMP }}/update-manager ref: ${{ github.ref }} token: ${{ secrets.WF_AUTH }} + - name: Checkout azure-connector + uses: actions/checkout@v2 + with: + repository: eclipse-kanto/azure-connector + path: ${{ env.BUILD_TMP }}/azure-connector + ref: ${{ github.ref }} + token: ${{ secrets.WF_AUTH }} + - name: Checkout aws-connector + uses: actions/checkout@v2 + with: + repository: eclipse-kanto/aws-connector + path: ${{ env.BUILD_TMP }}/aws-connector + ref: ${{ github.ref }} + token: ${{ secrets.WF_AUTH }} - name: Setup Go uses: actions/setup-go@v2 with: @@ -143,6 +157,18 @@ jobs: go test -v -race ./... -coverprofile coverage.out -covermode atomic go tool cover -func=coverage.out -o coverage.txt go tool cover -html=coverage.out -o coverage.html + - name: Generate azure-connector Coverage + working-directory: ${{ env.BUILD_TMP }}/azure-connector + run: | + go test ./... -v -coverprofile coverage.out -tags=unit + go tool cover -func=coverage.out -o coverage.txt + go tool cover -html=coverage.out -o coverage.html + - name: Generate aws-connector Coverage + working-directory: ${{ env.BUILD_TMP }}/aws-connector + run: | + go test ./... -v -coverprofile coverage.out -tags=unit + go tool cover -func=coverage.out -o coverage.txt + go tool cover -html=coverage.out -o coverage.html - name: Run GoReleaser uses: goreleaser/goreleaser-action@v2 with: diff --git a/.goreleaser.yaml b/.goreleaser.yaml index c2cd6756..039ba91a 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -245,6 +245,7 @@ builds: - -s -w -X main.version={{ .Version }} mod_timestamp: '{{ .CommitTimestamp }}' # local-digital-twins builds + # local-digital-twins builds - id: build-local-digital-twins dir: ./build-tmp/local-digital-twins main: ./cmd/twins @@ -292,6 +293,7 @@ builds: - -s -w -X main.version={{ .Version }} mod_timestamp: '{{ .CommitTimestamp }}' # suite-bootstrapping builds + # suite-bootstrapping builds - id: build-suite-bootstrapping dir: ./build-tmp/suite-bootstrapping main: ./cmd/bootstrapping @@ -339,6 +341,7 @@ builds: - -s -w -X main.version={{ .Version }} mod_timestamp: '{{ .CommitTimestamp }}' # file-backup builds + # file-backup builds - id: build-file-backup dir: ./build-tmp/file-backup main: ./ @@ -386,6 +389,7 @@ builds: - -s -w -X main.version={{ .Version }} mod_timestamp: '{{ .CommitTimestamp }}' # system-metrics builds + # system-metrics builds - id: build-system-metrics dir: ./build-tmp/system-metrics main: ./cmd/metrics @@ -433,6 +437,7 @@ builds: - -s -w -X main.version={{ .Version }} mod_timestamp: '{{ .CommitTimestamp }}' # update-manager builds + # update-manager builds - id: build-update-manager dir: ./build-tmp/update-manager main: ./cmd/update-manager @@ -479,6 +484,100 @@ builds: ldflags: - -s -w -X main.version={{ .Version }} mod_timestamp: '{{ .CommitTimestamp }}' + # azure-connector builds + - id: build-azure-connector + dir: ./build-tmp/azure-connector + main: ./cmd/azure-connector + binary: azure-connector/azure-connector + goos: + - linux + goarch: + - amd64 + - arm + - arm64 + goarm: + - 7 + flags: + - -mod=readonly + - -v + - -trimpath + asmflags: + - all=-trimpath={{ .Env.GOPATH }} + gcflags: + - all=-trimpath={{ .Env.GOPATH }} + ldflags: + - -s -w -X main.version={{ .Version }} + mod_timestamp: '{{ .CommitTimestamp }}' + - id: build-azure-connector-pkg + dir: ./build-tmp/azure-connector + main: ./cmd/azure-connector + binary: azure-connector + goos: + - linux + goarch: + - amd64 + - arm + - arm64 + goarm: + - 7 + flags: + - -mod=readonly + - -v + - -trimpath + asmflags: + - all=-trimpath={{ .Env.GOPATH }} + gcflags: + - all=-trimpath={{ .Env.GOPATH }} + ldflags: + - -s -w -X main.version={{ .Version }} + mod_timestamp: '{{ .CommitTimestamp }}' + # aws-connector builds + - id: build-aws-connector + dir: ./build-tmp/aws-connector + main: ./cmd/aws-connector + binary: aws-connector/aws-connector + goos: + - linux + goarch: + - amd64 + - arm + - arm64 + goarm: + - 7 + flags: + - -mod=readonly + - -v + - -trimpath + asmflags: + - all=-trimpath={{ .Env.GOPATH }} + gcflags: + - all=-trimpath={{ .Env.GOPATH }} + ldflags: + - -s -w -X main.version={{ .Version }} + mod_timestamp: '{{ .CommitTimestamp }}' + - id: build-aws-connector-pkg + dir: ./build-tmp/aws-connector + main: ./cmd/aws-connector + binary: aws-connector + goos: + - linux + goarch: + - amd64 + - arm + - arm64 + goarm: + - 7 + flags: + - -mod=readonly + - -v + - -trimpath + asmflags: + - all=-trimpath={{ .Env.GOPATH }} + gcflags: + - all=-trimpath={{ .Env.GOPATH }} + ldflags: + - -s -w -X main.version={{ .Version }} + mod_timestamp: '{{ .CommitTimestamp }}' archives: - id: kanto-archive-all name_template: '{{ .ProjectName }}_{{ .Version }}_linux_{{ if .Amd64 }}x86_64{{ else if .Arm }}armv7{{ else }}{{ .Arch }}{{ end }}' @@ -493,6 +592,8 @@ archives: - build-file-backup - build-system-metrics - build-update-manager + - build-azure-connector + - build-aws-connector files: # common files - LICENSE @@ -565,6 +666,28 @@ archives: strip_parent: true info: mode: 0644 + # azure-connector additional files + - src: ./build-tmp/azure-connector/NOTICE.md + dst: azure-connector + strip_parent: true + info: + mode: 0644 + - src: ./build-tmp/azure-connector/cmd/azure-connector/iothub.crt + dst: azure-connector + strip_parent: true + info: + mode: 0644 + # aws-connector additional files + - src: ./build-tmp/aws-connector/NOTICE.md + dst: aws-connector + strip_parent: true + info: + mode: 0644 + - src: ./build-tmp/aws-connector/cmd/aws-connector/aws.crt + dst: aws-connector + strip_parent: true + info: + mode: 0644 - id: code-coverage name_template: '{{ .ProjectName }}_{{ .Version }}_code_coverage' meta: true @@ -704,6 +827,36 @@ archives: strip_parent: true info: mode: 0644 + - src: ./build-tmp/azure-connector/coverage.html + dst: azure-connector + strip_parent: true + info: + mode: 0644 + - src: ./build-tmp/azure-connector/coverage.txt + dst: azure-connector + strip_parent: true + info: + mode: 0644 + - src: ./build-tmp/azure-connector/coverage.out + dst: azure-connector + strip_parent: true + info: + mode: 0644 + - src: ./build-tmp/aws-connector/coverage.html + dst: aws-connector + strip_parent: true + info: + mode: 0644 + - src: ./build-tmp/aws-connector/coverage.txt + dst: aws-connector + strip_parent: true + info: + mode: 0644 + - src: ./build-tmp/aws-connector/coverage.out + dst: aws-connector + strip_parent: true + info: + mode: 0644 nfpms: - builds: - build-suite-connector-pkg @@ -716,6 +869,8 @@ nfpms: - build-file-backup-pkg - build-system-metrics-pkg - build-update-manager-pkg + - build-azure-connector-pkg + - build-aws-connector-pkg bindir: /usr/bin file_name_template: '{{ .ProjectName }}_{{ .Version }}_linux_{{ if .Amd64 }}x86_64{{ else if .Arm }}armv7{{ else }}{{ .Arch }}{{ end }}' maintainer: Contributors to the Eclipse Foundation, Kanto Project @@ -1026,6 +1181,72 @@ nfpms: dst: /usr/share/doc/kanto-update-manager/LICENSE file_info: mode: 0644 + # azure-connector additional resources + - src: ./build-tmp/azure-connector/resources/azure-connector.service + dst: /etc/systemd/system/azure-connector.service + file_info: + mode: 0644 + packager: deb + - src: ./build-tmp/azure-connector/resources/azure-connector.service + dst: /usr/lib/systemd/system/azure-connector.service + file_info: + mode: 0644 + packager: rpm + - src: ./build-tmp/azure-connector/resources/config.json + dst: /etc/azure-connector/config.json + type: config + file_info: + mode: 0644 + - src: ./build-tmp/azure-connector/cmd/azure-connector/iothub.crt + dst: /etc/azure-connector/iothub.crt + type: config + file_info: + mode: 0644 + - src: ./build-tmp/azure-connector/NOTICE.md + dst: /usr/share/doc/azure-connector/NOTICE.md + file_info: + mode: 0644 + - src: ./build-tmp/azure-connector/README.md + dst: /usr/share/doc/azure-connector/README.md + file_info: + mode: 0644 + - src: ./build-tmp/azure-connector/LICENSE + dst: /usr/share/doc/azure-connector/LICENSE + file_info: + mode: 0644 + # aws-connector additional resources + - src: ./build-tmp/aws-connector/resources/aws-connector.service + dst: /etc/systemd/system/aws-connector.service + file_info: + mode: 0644 + packager: deb + - src: ./build-tmp/aws-connector/resources/aws-connector.service + dst: /usr/lib/systemd/system/aws-connector.service + file_info: + mode: 0644 + packager: rpm + - src: ./build-tmp/aws-connector/resources/config.json + dst: /etc/aws-connector/config.json + type: config + file_info: + mode: 0644 + - src: ./build-tmp/aws-connector/cmd/aws-connector/aws.crt + dst: /etc/aws-connector/aws.crt + type: config + file_info: + mode: 0644 + - src: ./build-tmp/aws-connector/NOTICE.md + dst: /usr/share/doc/aws-connector/NOTICE.md + file_info: + mode: 0644 + - src: ./build-tmp/aws-connector/README.md + dst: /usr/share/doc/aws-connector/README.md + file_info: + mode: 0644 + - src: ./build-tmp/aws-connector/LICENSE + dst: /usr/share/doc/aws-connector/LICENSE + file_info: + mode: 0644 checksum: name_template: '{{ .ProjectName }}_{{ .Version }}_checksums.txt' snapshot: diff --git a/build/postinst b/build/postinst index e48fdb58..2ba67208 100644 --- a/build/postinst +++ b/build/postinst @@ -17,6 +17,20 @@ if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-decon deb-systemd-helper update-state 'suite-connector.service' >/dev/null || true fi + # This will only remove masks created by d-s-h on package removal. + deb-systemd-helper unmask 'azure-connector.service' >/dev/null || true + + # Update the statefile to add new symlinks (if any), which need to be + # cleaned up on purge. Also remove old symlinks. + deb-systemd-helper update-state 'azure-connector.service' >/dev/null || true + + # This will only remove masks created by d-s-h on package removal. + deb-systemd-helper unmask 'aws-connector.service' >/dev/null || true + + # Update the statefile to add new symlinks (if any), which need to be + # cleaned up on purge. Also remove old symlinks. + deb-systemd-helper update-state 'aws-connector.service' >/dev/null || true + # This will only remove masks created by d-s-h on package removal. deb-systemd-helper unmask 'local-digital-twins.service' >/dev/null || true @@ -101,7 +115,7 @@ if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-decon deb-systemd-helper update-state 'system-metrics.service' >/dev/null || true fi - # This will only remove masks created by d-s-h on package removal. + # This will only remove masks created by d-s-h on package removal. deb-systemd-helper unmask 'kanto-update-manager.service' >/dev/null || true # was-enabled defaults to true, so new installations run enable. diff --git a/build/postinst_rpm b/build/postinst_rpm index dac77d82..d202c54b 100644 --- a/build/postinst_rpm +++ b/build/postinst_rpm @@ -11,6 +11,8 @@ if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Install the Kanto services /usr/lib/systemd/systemd-update-helper install-system-units suite-connector.service || : + /usr/lib/systemd/systemd-update-helper install-system-units azure-connector.service || : + /usr/lib/systemd/systemd-update-helper install-system-units aws-connector.service || : /usr/lib/systemd/systemd-update-helper install-system-units local-digital-twins.service || : /usr/lib/systemd/systemd-update-helper install-system-units suite-bootstrapping.service || : /usr/lib/systemd/systemd-update-helper install-system-units container-management.service || : @@ -23,6 +25,8 @@ if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Start the Kanto services if enabled if [ -d /run/systemd/system ]; then systemctl is-enabled -q suite-connector.service && systemctl start suite-connector.service >/dev/null || : + systemctl is-enabled -q azure-connector.service && systemctl azure suite-connector.service >/dev/null || : + systemctl is-enabled -q aws-connector.service && systemctl start aws-connector.service >/dev/null || : systemctl is-enabled -q local-digital-twins.service && systemctl start local-digital-twins.service >/dev/null || : systemctl is-enabled -q suite-bootstrapping.service && systemctl start suite-bootstrapping.service >/dev/null || : systemctl is-enabled -q container-management.service && systemctl start container-management.service >/dev/null || : diff --git a/build/postrm b/build/postrm index ddd02cb7..c92ee2b8 100644 --- a/build/postrm +++ b/build/postrm @@ -15,6 +15,8 @@ if [ "$1" = "remove" ]; then deb-systemd-helper mask 'container-management.service' >/dev/null || true deb-systemd-helper mask 'suite-bootstrapping.service' >/dev/null || true deb-systemd-helper mask 'local-digital-twins.service' >/dev/null || true + deb-systemd-helper mask 'aws-connector.service' >/dev/null || true + deb-systemd-helper mask 'azure-connector.service' >/dev/null || true deb-systemd-helper mask 'suite-connector.service' >/dev/null || true fi fi @@ -37,6 +39,10 @@ if [ "$1" = "purge" ]; then deb-systemd-helper unmask 'suite-bootstrapping.service' >/dev/null || true deb-systemd-helper purge 'local-digital-twins.service' >/dev/null || true deb-systemd-helper unmask 'local-digital-twins.service' >/dev/null || true + deb-systemd-helper purge 'aws-connector.service' >/dev/null || true + deb-systemd-helper unmask 'aws-connector.service' >/dev/null || true + deb-systemd-helper purge 'azure-connector.service' >/dev/null || true + deb-systemd-helper unmask 'azure-connector.service' >/dev/null || true deb-systemd-helper purge 'suite-connector.service' >/dev/null || true deb-systemd-helper unmask 'suite-connector.service' >/dev/null || true fi diff --git a/build/postrm_rpm b/build/postrm_rpm index 3f7f7bfb..afb3f741 100644 --- a/build/postrm_rpm +++ b/build/postrm_rpm @@ -3,6 +3,8 @@ if [ $1 -ge 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Mark the Kanto services for restart, including ones that are usually disabled by default /usr/lib/systemd/systemd-update-helper mark-restart-system-units suite-connector.service || : + /usr/lib/systemd/systemd-update-helper mark-restart-system-units azure-connector.service || : + /usr/lib/systemd/systemd-update-helper mark-restart-system-units aws-connector.service || : /usr/lib/systemd/systemd-update-helper mark-restart-system-units local-digital-twins.service || : /usr/lib/systemd/systemd-update-helper mark-restart-system-units suite-bootstrapping.service || : /usr/lib/systemd/systemd-update-helper mark-restart-system-units container-management.service || : diff --git a/build/prerm b/build/prerm index b9af77e1..0452511f 100644 --- a/build/prerm +++ b/build/prerm @@ -8,5 +8,7 @@ if [ -d /run/systemd/system ] && [ "$1" = remove ]; then deb-systemd-invoke stop 'container-management.service' >/dev/null || true deb-systemd-invoke stop 'suite-bootstrapping.service' >/dev/null || true deb-systemd-invoke stop 'local-digital-twins.service' >/dev/null || true + deb-systemd-invoke stop 'azure-connector.service' >/dev/null || true + deb-systemd-invoke stop 'aws-connector.service' >/dev/null || true deb-systemd-invoke stop 'suite-connector.service' >/dev/null || true fi \ No newline at end of file diff --git a/build/prerm_rpm b/build/prerm_rpm index b990aae7..999a1e2b 100644 --- a/build/prerm_rpm +++ b/build/prerm_rpm @@ -10,6 +10,8 @@ if [ $1 -eq 0 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then /usr/lib/systemd/systemd-update-helper remove-system-units container-management.service || : /usr/lib/systemd/systemd-update-helper remove-system-units suite-bootstrapping.service || : /usr/lib/systemd/systemd-update-helper remove-system-units local-digital-twins.service || : + /usr/lib/systemd/systemd-update-helper remove-system-units azure-connector.service || : + /usr/lib/systemd/systemd-update-helper remove-system-units aws-connector.service || : /usr/lib/systemd/systemd-update-helper remove-system-units suite-connector.service || : # Reload systemd