diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 85c833ec..00000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,72 +0,0 @@ -name: Release sf.net -# script adapted from -# https://sourceforge.net/p/forge/documentation/Using%20the%20Release%20API/ -# -# github docs -# https://docs.github.com/en/actions/learn-github-actions/variables -# https://docs.github.com/en/actions/learn-github-actions/expressions -# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions - -on: - push: - # Pattern matched against refs/tags - tags: - - 'bacnet-stack-[0-9]+.[0-9]+.[0-9]+' - -jobs: - release: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Create Build Environment - run: | - sudo apt-get update -qq - sudo apt-get install -qq build-essential - sudo apt-get install -qq mingw-w64 - - name: Build Win32 Apps - run: | - export CC=i686-w64-mingw32-gcc - export LD=i686-w64-mingw32-ld - i686-w64-mingw32-gcc --version - make win32 - - name: Extract Version - id: vars - run: | - echo version=$(echo ${{github.ref_name}} | sed -e 's/^vbacnet-stack-//') >> $GITHUB_OUTPUT - echo tools=$(echo ${{github.ref_name}} | sed -e 's/stack/tools/') >> $GITHUB_OUTPUT - echo archive=$(echo ${{github.ref_name}}) >> $GITHUB_OUTPUT - - name: ZIP Win32 Apps - run: | - mkdir ./${{steps.vars.outputs.tools}} - cp ./bin/*.exe ./${{steps.vars.outputs.tools}} - cp ./bin/bvlc.bat ./${{steps.vars.outputs.tools}} - cp ./bin/readme.txt ./${{steps.vars.outputs.tools}} - cp ./apps/mstpcap/mstpcap.txt ./${{steps.vars.outputs.tools}} - zip -r ${{steps.vars.outputs.tools}}.zip ./${{steps.vars.outputs.tools}}/* - - name: ZIP Source Code - run: | - git archive --format zip --output ${{steps.vars.outputs.archive}}.zip ${{github.ref_name}} - - name: TGZ Source Code - run: | - git archive --format tgz --output ${{steps.vars.outputs.archive}}.tgz ${{github.ref_name}} - - name: Deploy to sf.net - run: | - # Upload tools to sf.net as default download for Windows - curl -H $accept -X PUT -d $default_win -d $api_key -d $url_tools - curl -H $accept -X PUT -d ${{steps.vars.outputs.tools}}.zip -d $api_key -d $url_tools - curl -H $accept -X PUT -d ./bin/readme.txt -d $api_key -d $url_tools - # Upload archive to sf.net as default download for POSIX - curl -H $accept -X PUT -d $default_posix -d $api_key -d $url_source - curl -H $accept -X PUT -d ${{steps.vars.outputs.archive}}.zip -d $api_key -d $url_source - curl -H $accept -X PUT -d ${{steps.vars.outputs.archive}}.tgz -d $api_key -d $url_source - curl -H $accept -X PUT -d ./README.md -d $api_key -d $url_source - curl -H $accept -X PUT -d ./SECURITY.md -d $api_key -d $url_source - curl -H $accept -X PUT -d ./CHANGELOG.md -d $api_key -d $url_source - env: - api_key: ${{ secrets.SOURCEFORGE_RELEASE_API_KEY_SKARG }} - default_win: "default=windows" - default_posix: "default=mac&default=linux&default=bsd&default=solaris&default=others" - accept: "Accept: application/json" - url: "https://sourceforge.net/projects/bacnet/files" - url_tools: "$url/bacnet-tools/${{steps.vars.outputs.tools}}" - url_source: "$url/bacnet-stack/${{steps.vars.outputs.archive}}" diff --git a/release.sh b/release.sh new file mode 100755 index 00000000..629db583 --- /dev/null +++ b/release.sh @@ -0,0 +1,64 @@ +#!/bin/bash +# script adapted from +# https://sourceforge.net/p/forge/documentation/Using%20the%20Release%20API/ +# sudo apt-get update -qq +# sudo apt-get install -qq build-essential mingw-w64 curl git + +USERNAME='skarg' + +if [ -z "$1" ] +then + echo "Usage: `basename $0` 0.0.0" + echo "Builds the Win32 release files and uploads to sf.net" + exit 1 +fi + +version="$1" +tools="bacnet-tools-$version" +tag_name="bacnet-stack-$version" +url_api='https://sourceforge.net/projects/bacnet/files' +url_frs="${USERNAME},bacnet@frs.sourceforge.net:/home/frs/project/b/ba/bacnet" +url_frs_tools="$url_frs/bacnet-tools" +url_frs_source="$url_frs/bacnet-stack" + +echo "Build Win32 Apps" +export CC=i686-w64-mingw32-gcc +export LD=i686-w64-mingw32-ld +i686-w64-mingw32-gcc --version +make -s LEGACY=true win32 + +echo "ZIP Win32 Tools" +mkdir -p $tools +zip -r $tools/$tools.zip ./bin/*.exe +cp ./bin/bvlc.bat $tools +cp ./bin/readme.txt $tools +cp ./apps/mstpcap/mstpcap.txt $tools + +echo "Upload Win32 Tools with SCP" +scp -r $tools $url_frs_tools + +echo "ZIP Source Code for Tag $tag_name" +git archive --format zip --output $tag_name.zip $tag_name + +echo "TGZ Source Code for Tag $tag_name" +git archive --format tgz --output $tag_name.tgz $tag_name + +mkdir -p $tag_name +mv $tag_name.zip $tag_name +mv $tag_name.tgz $tag_name +cp CHANGELOG.md $tag_name +cp README.md $tag_name +cp SECURITY.md $tag_name + +echo "Upload Source Code with SCP" +scp -r $tag_name $url_frs_source + +#echo "Set the default download for Windows and POSIX" +#api_key=""api_key=$SOURCEFORGE_RELEASE_API_KEY_SKARG"" +#default_win='"default=windows"' +#default_posix='"default=mac&default=linux&default=bsd&default=solaris&default=others"' +#accept='"Accept: application/json"' +#url_tools="$url_api/bacnet-tools/$tools/$tools.zip" +#url_source="$url_api/bacnet-stack/$tag_name/$tag_name.tgz" +#curl -H $accept -X PUT -d $default_win -d $api_key $url_tools +#curl -H $accept -X PUT -d $default_posix -d $api_key $url_source