Release latest v2 version #41
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release latest v2 version | |
on: | |
workflow_dispatch: | |
jobs: | |
run_tests: | |
name: Run Tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 21 | |
- run: npm install | |
- run: npm run test | |
build_binaries: | |
name: Build Binaries | |
needs: [run_tests] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
# setup global dependencies | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 21 | |
registry-url: "https://registry.npmjs.org" | |
- run: npm install -g pkg | |
# build server project | |
- run: | | |
npm install | |
npm run bundle | |
# build client project | |
- run: | | |
cd faucet-client | |
npm install | |
node ./build-client.js | |
# publish npm packages | |
- run: | | |
npm set "//registry.npmjs.org/:_authToken=$NPM_TOKEN" | |
npm publish --access public || true | |
cd faucet-client | |
npm publish --access public || true | |
env: | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
# package bundled release | |
- name: Package bundled release | |
run: | | |
mv res/run-faucet.* ./ | |
chmod +x ./run-faucet.sh | |
tar cfz powfaucet-server-all.tar.gz bundle static faucet-config.example.yaml run-faucet.sh | |
zip -r powfaucet-server-all.zip bundle static faucet-config.example.yaml run-faucet.bat | |
# package static folder | |
- name: Package static folder | |
run: | | |
tar cfz powfaucet-static.tar.gz static | |
zip -r powfaucet-static.zip static | |
# build binaries | |
- run: pkg --compress Brotli --options no-warnings . | |
# collect metadata | |
- name: Get project versions | |
run: | | |
echo "server_version=$(cat package.json | jq ".version" | tr -d '"\r\n')" >> $GITHUB_OUTPUT | |
echo "client_version=$(cat faucet-client/package.json | jq ".version" | tr -d '"\r\n')" >> $GITHUB_OUTPUT | |
id: version | |
# create draft release | |
- name: Create latest release | |
uses: actions/create-release@v1 | |
id: create_release | |
with: | |
draft: true | |
prerelease: false | |
release_name: "v${{ steps.version.outputs.server_version }}" | |
tag_name: "v${{ steps.version.outputs.server_version }}" | |
body: | | |
### Major Changes | |
... | |
### Release Artifacts | |
| Release File | Description | | |
| ------------- | ------------- | | |
| powfaucet-server-all [.tar.gz](https://github.com/pk910/PoWFaucet/releases/download/v${{ steps.version.outputs.server_version }}/powfaucet-server-all.tar.gz) / [.zip](https://github.com/pk910/PoWFaucet/releases/download/v${{ steps.version.outputs.server_version }}/powfaucet-server-all.zip) | PoWFaucet server for execution with local nodejs (recommended) | | |
| [powfaucet-server-win.exe](https://github.com/pk910/PoWFaucet/releases/download/v${{ steps.version.outputs.server_version }}/powfaucet-server-win.exe) | PoWFaucet all-in-one executable for windows (NodeJS 18, 64bit) | | |
| [powfaucet-server-linux](https://github.com/pk910/PoWFaucet/releases/download/v${{ steps.version.outputs.server_version }}/powfaucet-server-linux) | PoWFaucet all-in-one executable for linux (NodeJS 18, 64bit) | | |
| powfaucet-static [.tar.gz](https://github.com/pk910/PoWFaucet/releases/download/v${{ steps.version.outputs.server_version }}/powfaucet-static.tar.gz) / [.zip](https://github.com/pk910/PoWFaucet/releases/download/v${{ steps.version.outputs.server_version }}/powfaucet-static.zip) | PoWFaucet static folder (optional, see [Operator Wiki](https://github.com/pk910/PoWFaucet/wiki/Operator-Wiki)) | | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
# upload release artifacts | |
- name: "Upload artifact: powfaucet-server-linux" | |
uses: actions/upload-release-asset@v1 | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./bin/server-linux | |
asset_name: powfaucet-server-linux | |
asset_content_type: application/octet-stream | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
- name: "Upload artifact: powfaucet-server-win.exe" | |
uses: actions/upload-release-asset@v1 | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./bin/server-win.exe | |
asset_name: powfaucet-server-win.exe | |
asset_content_type: application/octet-stream | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
- name: "Upload artifact: powfaucet-server-all.tar.gz" | |
uses: actions/upload-release-asset@v1 | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./powfaucet-server-all.tar.gz | |
asset_name: powfaucet-server-all.tar.gz | |
asset_content_type: application/gzip | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
- name: "Upload artifact: powfaucet-server-all.zip" | |
uses: actions/upload-release-asset@v1 | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./powfaucet-server-all.zip | |
asset_name: powfaucet-server-all.zip | |
asset_content_type: application/zip | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
- name: "Upload artifact: powfaucet-static.tar.gz" | |
uses: actions/upload-release-asset@v1 | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./powfaucet-static.tar.gz | |
asset_name: powfaucet-static.tar.gz | |
asset_content_type: application/gzip | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
- name: "Upload artifact: powfaucet-static.zip" | |
uses: actions/upload-release-asset@v1 | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./powfaucet-static.zip | |
asset_name: powfaucet-static.zip | |
asset_content_type: application/zip | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |