name: ci on: push jobs: build: runs-on: ubuntu-22.04 steps: - name: Repository meta id: repository run: | registry=${{ github.server_url }} registry=${registry##http*://} echo "registry=${registry}" >> "$GITHUB_OUTPUT" echo "registry=${registry}" repository="$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]')" echo "repository=${repository}" >> "$GITHUB_OUTPUT" echo "repository=${repository}" - name: Docker meta uses: docker/metadata-action@v5 id: docker with: images: ${{ steps.repository.outputs.registry }}/${{ steps.repository.outputs.repository }} - name: Login to registry uses: docker/login-action@v3 with: registry: ${{ steps.repository.outputs.registry }} username: ${{ secrets.PACKAGES_USER }} password: ${{ secrets.PACKAGES_TOKEN }} - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 with: buildkitd-flags: '--allow-insecure-entitlement network.host' driver-opts: network=host - name: Checkout code uses: actions/checkout@v4 - name: Lint test run: | registry=${{ github.server_url }} registry=${registry##http*://} repository="$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]')" fullrepo=https://${registry}/${repository}.git git init # git pull ${fullrepo} npm install @angular/cli npm run lint - name: Update version id: get-version run: | set -e current_version=$(jq -r '.version' package.json) echo "Current version: $current_version" IFS='.' read -r major minor patch <<< "$current_version" new_patch=$((patch + 1)) new_version="$major.$minor.$new_patch" echo "New version: $new_version" git config --local user.email "github-actions[bot]@users.noreply.github.com" git config --local user.name "GitHub Actions Bot" # git checkout -- package-lock.json package.json git stash git pull git stash pop jq ".version = \"$new_version\"" package.json > temp.json && mv temp.json package.json sed -i "s|forgejo.edf-bootstrap.cx.fg1.ffm.osc.live/devfw-cicd/michals-silly-game-frontend:.*|forgejo.edf-bootstrap.cx.fg1.ffm.osc.live/devfw-cicd/michals-silly-game-frontend:$new_version|" k8/deployment.yaml git add . git commit -m "Automated update by Forgejo Actions" git push origin HEAD:${{ github.ref_name }} echo "tag=$new_version" >> "$GITHUB_OUTPUT" - name: Build and push uses: docker/build-push-action@v6 with: push: true allow: network.host network: host platforms: linux/amd64 tags: ${{ steps.repository.outputs.registry }}/${{ steps.repository.outputs.repository }}:${{ steps.get-version.outputs.tag }}