Переработан workflow и добавлена сборка MSI пакета.
Some checks failed
build / build (push) Successful in 46s
build / build_windows (push) Successful in 47s
release / build (push) Successful in 42s
release / build_windows (push) Successful in 42s
release / deploy (push) Failing after 11s
release / release (push) Has been skipped

This commit is contained in:
Алексей Бадяев 2024-10-12 15:06:01 +07:00
parent 6b980d730f
commit 294a8dd1ee
Signed by: alexey
GPG Key ID: 686FBC1363E4AFAE
3 changed files with 171 additions and 45 deletions

View File

@ -10,8 +10,6 @@ on:
jobs:
build:
runs-on: ubuntu-latest
# container:
# image: git.mousesoft.ru/ms/gitea-runner-images:python-ubuntu-latest
steps:
- name: check-out repository code
uses: https://gitea.com/actions/checkout@v4
@ -24,34 +22,62 @@ jobs:
with:
go-version: ">=1.22"
- name: test
run: make clean vendor lint test
- name: set-up dependencies
run: make clean vendor
- name: cache
uses: https://gitea.com/actions/cache@v4
with:
path: |
out/*.tar.gz
key: ms_drawio-export_${{ github.sha }}
- name: test
run: make lint test
- name: build amd64 binary
if: steps.cache.outputs.cache-hit != 'true'
run: GOARCH=amd64 make clean build
id: build-amd
run: |
echo "ARTIFACT=drawio-export-$(make version)_$(go env GOOS)-amd64" >> $GITHUB_OUTPUT
GOARCH=amd64 make clean build
- name: upload amd64 binary artifact
uses: https://gitea.com/actions/upload-artifact@v3
with:
name: drawio-export-amd64
name: ${{ steps.build-amd.outputs.ARTIFACT }}
path: out/bin/*
overwrite: true
- name: build arm64 binary
if: steps.cache.outputs.cache-hit != 'true'
run: GOARCH=arm64 make clean build
id: build-arm
run: |
echo "ARTIFACT=drawio-export-$(make version)_$(go env GOOS)-arm64" >> $GITHUB_OUTPUT
GOARCH=arm64 make clean build
- name: upload arm64 binary artifact
uses: https://gitea.com/actions/upload-artifact@v3
with:
name: drawio-export-arm64
name: ${{ steps.build-arm.outputs.ARTIFACT }}
path: out/bin/*
overwrite: true
build_windows:
runs-on: windows
defaults:
run:
shell: bash
steps:
- name: check-out repository code
uses: https://gitea.com/actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- name: set-up dependencies
run: make vendor
- name: build
id: build
run: |
echo "ARTIFACT=drawio-export-$(make version)_$(go env GOOS)-$(go env GOARCH)" >> $GITHUB_OUTPUT
make build
- name: upload artifact
uses: https://gitea.com/actions/upload-artifact@v3
with:
name: ${{ steps.build.outputs.ARTIFACT }}
path: out/bin/*
overwrite: true

View File

@ -8,10 +8,11 @@ on:
- "v*"
jobs:
release:
build:
runs-on: ubuntu-latest
# container:
# image: git.mousesoft.ru/ms/gitea-runner-images:python-ubuntu-latest
outputs:
artifact_amd64: ${{ steps.build-amd.outputs.ARTIFACT }}
artifact_arm64: ${{ steps.build-arm.outputs.ARTIFACT }}
steps:
- name: check-out repository code
uses: https://gitea.com/actions/checkout@v4
@ -24,26 +25,107 @@ jobs:
with:
go-version: ">=1.22"
- name: test
run: make clean vendor lint test
- name: set-up dependencies
run: make clean vendor
- name: cache
uses: https://gitea.com/actions/cache@v4
with:
path: |
out/*.deb
out/*.changes
key: ms_drawio-export_pkg_${{ github.sha }}
- name: test
run: make lint test
- name: build amd64 package
if: steps.cache.outputs.cache-hit != 'true'
run: GOARCH=amd64 make package
id: build-amd
run: |
echo "ARTIFACT=drawio-export-$(make version)_$(go env GOOS)-amd64" >> $GITHUB_OUTPUT
GOARCH=amd64 make clean build package
- name: upload amd64 package
uses: https://gitea.com/actions/upload-artifact@v3
with:
name: ${{ steps.build-amd.outputs.ARTIFACT }}
path: |
out/*.changes
out/*.deb
overwrite: true
- name: build arm64 package
if: steps.cache.outputs.cache-hit != 'true'
run: GOARCH=arm64 make package
id: build-arm
run: |
echo "ARTIFACT=drawio-export-$(make version)_$(go env GOOS)-arm64" >> $GITHUB_OUTPUT
GOARCH=arm64 make clean build package
- name: deploy packages
- name: upload arm64 package
uses: https://gitea.com/actions/upload-artifact@v3
with:
name: ${{ steps.build-arm.outputs.ARTIFACT }}
path: |
out/*.changes
out/*.deb
overwrite: true
build_windows:
runs-on: windows
outputs:
artifact: ${{ steps.build.outputs.ARTIFACT }}
defaults:
run:
shell: bash
steps:
- name: check-out repository code
uses: https://gitea.com/actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- name: set-up dependencies
run: make vendor
- name: build
id: build
run: |
echo "ARTIFACT=drawio-export-$(make version)_$(go env GOOS)-$(go env GOARCH)" >> $GITHUB_OUTPUT
make clean build package
- name: upload artifact
uses: https://gitea.com/actions/upload-artifact@v3
with:
name: ${{ steps.build.outputs.ARTIFACT }}
path: out/*.msi
overwrite: true
deploy:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.meta.outputs.VERSION }}
changes: ${{ steps.meta.outputs.CHANGES }}
needs:
- build
steps:
- name: check-out repository code
uses: https://gitea.com/actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- name: get meta-data
id: meta
run: |
echo "VERSION=$(make version)" >> $GITHUB_OUTPUT
echo 'CHANGES<<EOF' >> $GITHUB_OUTPUT
gawk -f scripts/changes.awk -v version=$(make version-number) CHANGELOG.md >> $GITHUB_OUTPUT
echo EOF >> $GITHUB_OUTPUT
- name: download debian amd64 package
uses: https://gitea.com/actions/download-artifact@v4
with:
name: ${{ needs.build.outputs.artifact_amd64 }}
path: out/
- name: download debian ard64 package
uses: https://gitea.com/actions/download-artifact@v4
with:
name: ${{ needs.build.outputs.artifact_arm64 }}
path: out/
- name: deploy debian packages
env:
SSH_HOST: ${{ secrets.DEB_SSH_HOST }}
SSH_PORT: ${{ secrets.DEB_SSH_PORT }}
@ -65,21 +147,39 @@ jobs:
cat ~/.ssh/config
make deploy
- name: get meta-data
id: meta
run: |
echo "VERSION=$(make version)" >> $GITHUB_OUTPUT
echo 'CHANGES<<EOF' >> $GITHUB_OUTPUT
gawk -f scripts/changes.awk -v version=$(make version-number) CHANGELOG.md >> $GITHUB_OUTPUT
echo EOF >> $GITHUB_OUTPUT
release:
runs-on: ubuntu-latest
needs:
- build
- build_windows
- deploy
steps:
- name: download debian amd64 package
uses: https://gitea.com/actions/download-artifact@v4
with:
name: ${{ needs.build.outputs.artifact_amd64 }}
path: out/
- name: download debian ard64 package
uses: https://gitea.com/actions/download-artifact@v4
with:
name: ${{ needs.build.outputs.artifact_arm64 }}
path: out/
- name: download windows package
uses: https://gitea.com/actions/download-artifact@v4
with:
name: ${{ needs.build_windows.outputs.artifact }}
path: out/
- name: release
uses: https://gitea.com/actions/gitea-release-action@v1
with:
title: "MouseSoft DrawIO-Export ${{ steps.meta.outputs.VERSION }}"
body: "${{ steps.meta.outputs.CHANGES }}"
title: "MouseSoft DrawIO-Export ${{ needs.deploy.outputs.version }}"
body: "${{ needs.deploy.outputs.changes }}"
files: |
out/*.deb
out/*.msi
sha256sum: true
prerelease: true
draft: true

View File

@ -31,7 +31,7 @@ ECHO_CMD := echo
ifeq ($(OS),Windows_NT)
DIST_SUFFIX := windows-$(GOARCH)
MSI_FILE := $(PROJECT_ID)_$(VERSION)_$(GOARCH).msi
MSI_FILE ?= $(PROJECT_ID)_$(VERSION)_$(GOARCH).msi
DIST_EXT := .zip
DIST_OPTS := -a -cf
ECHO_CMD := echo -e
@ -112,7 +112,7 @@ package: $(PACKAGE_TARGETS) ## Build all available packages
.PHONY:package
ifeq ($(OS),Windows_NT)
pkg-msi: build ## Create MSI package
pkg-msi: ## Create MSI package
@rm -rf $(TMPDIR)
@rm -f $(OUTDIR)/$(MSI_FILE)
@mkdir -p $(TMPDIR)
@ -132,7 +132,7 @@ else
DEB_NAME := $(PROJECT_ID)_$(VERSION_NUMBER)-1_$(GOARCH)
pkg-deb: build ## Build debian package
pkg-deb: ## Build debian package
@rm -rf $(TMPDIR)
@mkdir -p $(TMPDIR)/$(DEB_NAME)/usr/bin
@mkdir -p $(TMPDIR)/$(DEB_NAME)/debian