name: Build app and image on: workflow_dispatch: jobs: build: permissions: contents: read packages: write runs-on: ubuntu-latest steps: - name: Check out code uses: actions/checkout@v6 - name: generate tag id: generate_tag run: | echo "Generating a unique tag for the image..." echo "Repo: ${{ github.repository }}; Run ID: ${{ github.run_id }}" PREFIX="gitea.controller.bittehackmichnicht.de/${{ github.repository }}/ptp-chat-frontend" if [ "${{ github.event_name }}" = "schedule" ]; then echo "Scheduled run detected, using date-based tag." VERSION="1.0.0-${{ github.run_id }}" echo "LATEST=true" >> $GITHUB_OUTPUT else VERSION="1.0.0-alpha-${{ github.run_id }}" if [ ${{ github.event_name }} = "workflow_dispatch" ]; then echo "Manual run detected, also updating 'latest' tag." echo "LATEST=true" >> $GITHUB_OUTPUT else echo "LATEST=false" >> $GITHUB_OUTPUT fi fi echo "VERSION=$VERSION" >> $GITHUB_OUTPUT echo "TAG=$PREFIX:$VERSION" >> $GITHUB_OUTPUT - name: Install dependencies run: npm ci - name: Create .npmrc run: | echo "registry=https://gitea.controller.bittehackmichnicht.de/api/packages/apps/npm/" > ~/.npmrc echo "//gitea.controller.bittehackmichnicht.de/api/packages/apps/npm/:_authToken=${{ secrets.PUSH_TOKEN }}" >> ~/.npmrc - name: Build & publish npm package env: VERSION: ${{ steps.generate_tag.outputs.VERSION }} run: | npm version $VERSION --no-git-tag-version npm run build npm publish --registry https://gitea.controller.bittehackmichnicht.de/api/packages/apps/npm/ --tag alpha - name: Build & publish image env: TAG: ${{ steps.generate_tag.outputs.TAG }} LATEST: ${{ steps.generate_tag.outputs.LATEST }} run: | docker build -t $TAG . echo ${{ secrets.PUSH_TOKEN }} | docker login gitea.controller.bittehackmichnicht.de -u ${{ github.actor }} --password-stdin docker push $TAG if [ "$LATEST" = "true" ]; then docker tag $TAG gitea.controller.bittehackmichnicht.de/${{ github.repository }}/ptp-chat-frontend:latest docker push gitea.controller.bittehackmichnicht.de/${{ github.repository }}/ptp-chat-frontend:latest fi