name: release run-name: ${{ gitea.actor }} release MouseSoft Draw.IO Export on: push: tags: - "v*" jobs: build: runs-on: ubuntu-latest outputs: version: ${{ steps.meta.outputs.VERSION }} changes: ${{ steps.meta.outputs.CHANGES }} artifact_amd64: ${{ steps.build-amd.outputs.ARTIFACT }} artifact_arm64: ${{ steps.build-arm.outputs.ARTIFACT }} steps: - name: check-out uses: https://gitea.com/actions/checkout@v4 with: fetch-depth: 0 fetch-tags: true - name: set-up go uses: https://gitea.com/actions/setup-go@v3 with: go-version: ">=1.22" - name: meta id: meta env: SSH_HOST: ${{ secrets.DEB_SSH_HOST }} run: | echo "VERSION=$(make version)" >> $GITHUB_OUTPUT echo 'CHANGES<> $GITHUB_OUTPUT gawk -f scripts/changes.awk -v version=$(make version-number) CHANGELOG.md >> $GITHUB_OUTPUT echo EOF >> $GITHUB_OUTPUT mkdir -p out sed -e "s/DEB_SSH_HOST/$SSH_HOST/g" deploy/dput/mousesoft.json.tpl > out/mousesoft.json - name: upload dput profile uses: https://gitea.com/actions/upload-artifact@v3 with: name: mousesoft_dput_profile path: out/mousesoft.json overwrite: true - name: set-up dependencies run: | go install github.com/kisielk/errcheck@latest go install honnef.co/go/tools/cmd/staticcheck@latest go install github.com/sashamelentyev/usestdlibvars@latest go install golang.org/x/tools/go/analysis/passes/shadow/cmd/shadow@latest make vendor - name: lint run: make lint - name: golangci-lint uses: https://github.com/golangci/golangci-lint-action@v6 with: version: v1.60 - name: test run: make test - name: build amd64 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 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 id: build-arm run: | echo "ARTIFACT=drawio-export-$(make version)_$(go env GOOS)-arm64" >> $GITHUB_OUTPUT GOARCH=arm64 make clean build package - name: upload arm64 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 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 uses: https://gitea.com/actions/upload-artifact@v3 with: name: ${{ steps.build.outputs.ARTIFACT }} path: out/*.msi overwrite: true deploy: runs-on: ubuntu-latest needs: - build - build_windows steps: - name: download dput profile uses: https://gitea.com/actions/download-artifact@v3-node20 with: name: mousesoft_dput_profile path: /etc/dput.d/profiles/ - name: download amd64 package uses: https://gitea.com/actions/download-artifact@v3-node20 with: name: ${{ needs.build.outputs.artifact_amd64 }} - name: download arm64 package uses: https://gitea.com/actions/download-artifact@v3-node20 with: name: ${{ needs.build.outputs.artifact_arm64 }} - name: deploy packages env: SSH_HOST: ${{ secrets.DEB_SSH_HOST }} SSH_PORT: ${{ secrets.DEB_SSH_PORT }} SSH_USER: ${{ secrets.DEB_SSH_USER }} SSH_KEY: ${{ secrets.DEB_SSH_KEY }} run: | mkdir -p ~/.ssh/ echo "$SSH_KEY" | tr -d '\r' > ~/.ssh/key chmod 0600 ~/.ssh/key cat >>~/.ssh/config <