Переработан 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: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
# container:
# image: git.mousesoft.ru/ms/gitea-runner-images:python-ubuntu-latest
steps: steps:
- name: check-out repository code - name: check-out repository code
uses: https://gitea.com/actions/checkout@v4 uses: https://gitea.com/actions/checkout@v4
@ -24,34 +22,62 @@ jobs:
with: with:
go-version: ">=1.22" go-version: ">=1.22"
- name: test - name: set-up dependencies
run: make clean vendor lint test run: make clean vendor
- name: cache - name: test
uses: https://gitea.com/actions/cache@v4 run: make lint test
with:
path: |
out/*.tar.gz
key: ms_drawio-export_${{ github.sha }}
- name: build amd64 binary - name: build amd64 binary
if: steps.cache.outputs.cache-hit != 'true' id: build-amd
run: GOARCH=amd64 make clean build run: |
echo "ARTIFACT=drawio-export-$(make version)_$(go env GOOS)-amd64" >> $GITHUB_OUTPUT
GOARCH=amd64 make clean build
- name: upload amd64 binary artifact - name: upload amd64 binary artifact
uses: https://gitea.com/actions/upload-artifact@v3 uses: https://gitea.com/actions/upload-artifact@v3
with: with:
name: drawio-export-amd64 name: ${{ steps.build-amd.outputs.ARTIFACT }}
path: out/bin/* path: out/bin/*
overwrite: true overwrite: true
- name: build arm64 binary - name: build arm64 binary
if: steps.cache.outputs.cache-hit != 'true' id: build-arm
run: GOARCH=arm64 make clean build run: |
echo "ARTIFACT=drawio-export-$(make version)_$(go env GOOS)-arm64" >> $GITHUB_OUTPUT
GOARCH=arm64 make clean build
- name: upload arm64 binary artifact - name: upload arm64 binary artifact
uses: https://gitea.com/actions/upload-artifact@v3 uses: https://gitea.com/actions/upload-artifact@v3
with: 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/* path: out/bin/*
overwrite: true overwrite: true

View File

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

View File

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