name: release on: push: branches: - main jobs: docker: runs-on: ubuntu-latest steps: - name: Git describe id: ghd uses: proudust/gh-describe@v2 - name: Login to GHCR uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and push uses: docker/build-push-action@v6 with: platforms: linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8 push: true tags: ghcr.io/go-vikunja/vikunja:unstable build-args: | RELEASE_VERSION=${{ steps.ghd.outputs.describe }} desktop: strategy: matrix: os: - ubuntu-latest - windows-latest - macos-latest runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - name: Git describe id: ghd uses: proudust/gh-describe@v2 - name: Install pnpm uses: pnpm/action-setup@v4 with: package_json_file: desktop/package.json - name: Setup Node uses: actions/setup-node@v4 with: node-version: 22 cache: pnpm cache-dependency-path: desktop/pnpm-lock.yaml - name: Build desktop app working-directory: desktop run: | pnpm install --fetch-timeout 100000 # TODO use the built output from a previous frontend build step node build.js "${{ steps.ghd.outputs.describe }}" ${{ github.ref_type == 'tag' }} - name: Store release as artifact uses: actions/upload-artifact@v4 with: name: desktop-release-${{ runner.os }} path: desktop/dist/Vikunja*