name: ci on: push: branches: - main pull_request: branches: - main jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 - uses: bahmutov/npm-install@v1 - run: yarn build - run: npx keycloakify check_if_version_upgraded: name: Check if version upgrade if: github.event_name == 'push' runs-on: ubuntu-latest needs: test outputs: from_version: ${{ steps.step1.outputs.from_version }} to_version: ${{ steps.step1.outputs.to_version }} is_upgraded_version: ${{ steps.step1.outputs.is_upgraded_version }} steps: - uses: garronej/ts-ci@v2.1.0 id: step1 with: action_name: is_package_json_version_upgraded branch: ${{ github.head_ref || github.ref }} create_github_release: runs-on: ubuntu-latest needs: check_if_version_upgraded # We create a release only if the version have been upgraded and we are on a default branch if: needs.check_if_version_upgraded.outputs.is_upgraded_version == 'true' && github.event_name == 'push' steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 - uses: bahmutov/npm-install@v1 - run: yarn build - run: npx keycloakify - run: mv build_keycloak/target/*keycloak-theme*.jar keycloak-theme.jar - uses: softprops/action-gh-release@v1 with: name: Release v${{ needs.check_if_version_upgraded.outputs.to_version }} tag_name: v${{ needs.check_if_version_upgraded.outputs.to_version }} target_commitish: ${{ github.head_ref || github.ref }} generate_release_notes: true files: keycloak-theme.jar draft: false env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} docker: runs-on: ubuntu-latest needs: - check_if_version_upgraded - create_github_release steps: - uses: actions/checkout@v2 - uses: docker/setup-qemu-action@v1 - uses: docker/setup-buildx-action@v1 - uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Computing Docker image tags id: step1 env: IS_UPGRADED_VERSION: ${{ needs.check_if_version_upgraded.outputs.is_upgraded_version }} TO_VERSION: ${{ needs.check_if_version_upgraded.outputs.to_version }} run: | OUT=$GITHUB_REPOSITORY:$TO_VERSION,$GITHUB_REPOSITORY:latest OUT=$(echo "$OUT" | awk '{print tolower($0)}') echo ::set-output name=docker_tags::$OUT - uses: docker/build-push-action@v2 with: push: true context: . tags: ${{ steps.step1.outputs.docker_tags }} github_pages: runs-on: ubuntu-latest needs: - create_github_release steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 - uses: bahmutov/npm-install@v1 - run: yarn build # We tell GitHub pages that our package.json["homepage"] field is our domain name. - run: echo $(node -e 'console.log(require("url").parse(require("./package.json").homepage).host)') > build/CNAME - run: git remote set-url origin https://git:${GITHUB_TOKEN}@github.com/${{github.repository}}.git env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - uses: actions/setup-node@v3.6.0 - run: npx -y -p gh-pages@3.0.0 gh-pages -u "github-actions-bot " -d build