name: Build Application on: push: tags: - 'v[0-9]+\.[0-9]+\.[0-9]+(-rc\.[0-9]+)?' - 'v*' jobs: build: runs-on: stable container: image: git.euph.dev/actions/runner-redot-4.3:latest strategy: matrix: include: - platform: Linux out: tower_defence.elf artifact-name: tower_defence.elf artifact-path: tower_defence.elf #- platform: OSX # build-dir: build # out: build/tower_defence.app # artifact-name: tower_defence.app # artifact-path: build - platform: Windows out: tower_defence.exe artifact-name: tower_defence.exe artifact-path: tower_defence.exe - platform: Web build-dir: build out: build/index.html artifact-name: tower_defence_web artifact-path: build/* steps: - name: "Checkout" uses: "https://git.euph.dev/actions/checkout@v3" - name: Build Binary run: | if [ "${{ matrix.build-dir }}" != "" ]; then mkdir -p ${{ matrix.build-dir}} fi redot --headless --export-release ${{ matrix.platform }} ${{ matrix.out }} - name: Upload Binary as Artifact uses: "https://git.euph.dev/actions/upload-artifact@v3" with: name: ${{ matrix.artifact-name }} path: ${{ matrix.artifact-path }} build-docker: runs-on: docker needs: - build steps: - name: "Checkout" uses: "https://git.euph.dev/actions/checkout@v3" - name: Download artifact from previous job uses: "https://git.euph.dev/actions/download-artifact@v3" with: name: tower_defence_web path: .forgejo/workflows/web - name: Login to Registry uses: "https://git.euph.dev/actions/docker-login@v3" with: registry: git.euph.dev username: ${{ secrets.DEPLOY_USER }} password: ${{ secrets.DEPLOY_SECRET }} - name: Build and push Web Image uses: "https://git.euph.dev/actions/docker-build-push@v5" with: context: ".forgejo/workflows/" push: true tags: | git.euph.dev/towerdefence/web-client:${{ github.ref_name }} ${{ contains(github.ref_name, 'rc') == false && 'git.euph.dev/towerdefence/web-client:latest' || '' }} release: runs-on: stable container: image: git.euph.dev/actions/runner-basic:latest needs: - build - build-docker steps: - name: Download Linux Release Binaries uses: "https://git.euph.dev/actions/download-artifact@v3" with: name: tower_defence.elf path: release - name: Download Windows release Binaries uses: "https://git.euph.dev/actions/download-artifact@v3" with: name: tower_defence.exe path: release - name: Create Release uses: "https://git.euph.dev/actions/release@v2" with: direction: upload tag: ${{ github.ref_name }} token: ${{ secrets.DEPLOY_TOKEN }} prerelease: ${{ contains( github.ref_name, "rc") }} release-dir: release release-notes: | # Tower Defence - Client ${{ github.ref_name }} Run this release with docker like this: \`\`\`sh docker run --rm -p 8080:80 git.euph.dev/towerdefence/web-client:${{ github.ref_name }} \`\`\` It will be available under [\`localhost:8080\`](localhost:8080)

For more information read the [Documentation](https://git.euph.dev/TowerDefence/Dokumentation/wiki/Client/Config)