name: Build on: push: branches: [main] pull_request: workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Install dependencies run: npm install - name: Lint run: npm run lint - name: Test run: npm run test - name: Build run: npm run build - name: Build Windows installer run: | builder="coworker-builder-${GITHUB_RUN_ID:-manual}-${GITHUB_RUN_ATTEMPT:-1}" rm -rf node_modules release docker create --name "$builder" electronuserland/builder:wine /bin/bash -lc "sleep infinity" trap 'docker rm -f "$builder"' EXIT docker cp . "$builder":/project docker start "$builder" docker exec -w /project "$builder" /bin/bash -lc "npm install && npm run package:win" docker cp "$builder":/project/release ./release - name: Checksums run: | cd release sha256sum Coworker-Setup-*.exe > SHA256SUMS.txt - name: Publish installer package if: github.event_name == 'push' && github.ref == 'refs/heads/main' continue-on-error: true env: GITEA_TOKEN: ${{ secrets.GITEATOKEN }} GITEA_USER: ${{ secrets.GITEAUSER }} run: | test -n "$GITEA_TOKEN" version="$(node -p "require('./package.json').version")" server="${GITHUB_SERVER_URL:-https://git.wilkensxl.de}" owner="${GITHUB_REPOSITORY_OWNER:-Code-Inc}" user="${GITEA_USER:-${GITHUB_ACTOR:-MrSphay}}" package_name="coworker-windows-installer" for file in release/Coworker-Setup-*.exe release/SHA256SUMS.txt; do name="$(basename "$file")" curl --fail-with-body -sS \ -u "$user:$GITEA_TOKEN" \ --upload-file "$file" \ "$server/api/packages/$owner/generic/$package_name/$version/$name" done - name: Upload installer artifact uses: actions/upload-artifact@v3 with: name: coworker-windows-installer path: | release/Coworker-Setup-*.exe release/SHA256SUMS.txt