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 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@v3 - 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 ::set-output name=version::$(echo ${{github.ref_name}} | sed -e 's/^vbacnet-stack-//') echo ::set-output name=tools::$(echo ${{github.ref_name}} | sed -e 's/stack/tools/') echo ::set-output name=archive::$(echo ${{github.ref_name}}) - 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: | 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}}" steps: - name: Upload tools to sf.net as default download for Windows run: | 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 - name: Upload archive to sf.net as default download for POSIX run: | 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