ignores update #105
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: preview | |
# This workflow should run for any push which is a preview build. | |
# Preview builds are indicated with a tag that ends in -preview | |
# In order to effect this, you can do the following: | |
# scripts/tag-preview-build | |
# If you want to replace a build, you can use -f and then | |
# push the update to the tag like push -f origin <tag>, | |
# although this should never be done! | |
on: | |
push: | |
tags: | |
- "[0-9]+.[0-9]+.[0-9]+-preview" | |
jobs: | |
preview-build: | |
runs-on: ubuntu-20.04 | |
outputs: | |
preview_version: ${{ steps.versions.outputs.PREVIEW_VERSION }} | |
docker_tags: ${{ steps.versions.outputs.DOCKER_TAGS }} | |
steps: | |
- name: checkout repo | |
uses: actions/checkout@v4 | |
- name: setup java | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'oracle' | |
java-version: '21' | |
java-package: jdk | |
architecture: x64 | |
- name: set git username | |
run: git config --global user.email "${{ secrets.NBDROID_EMAIL }}" | |
- name: set git email | |
run: git config --global user.name "${{ secrets.NBDROID_NAME }}" | |
- name: free disk space | |
run: | | |
sudo swapoff -a | |
sudo rm -f /swapfile | |
sudo apt clean | |
docker rmi $(docker image ls -aq) | |
df -h | |
- name: Cache Maven packages | |
uses: actions/cache@v4 | |
with: | |
path: ~/.m2 | |
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-m2 | |
- name: read versions | |
id: versions | |
run: | | |
set -x | |
PREVIEW_VERSION=$(scripts/get-preview-version.sh) | |
echo "PREVIEW_VERSION=${PREVIEW_VERSION}" >> $GITHUB_ENV | |
echo "PREVIEW_VERSION=${PREVIEW_VERSION}" >> $GITHUB_OUTPUT | |
echo "DOCKER_TAGS=nosqlbench/nosqlbench:${PREVIEW_VERSION},nosqlbench/nosqlbench:preview" >> $GITHUB_ENV | |
echo "DOCKER_TAGS=nosqlbench/nosqlbench:${PREVIEW_VERSION},nosqlbench/nosqlbench:preview" >> $GITHUB_OUTPUT | |
- name: build preview revision | |
run: | | |
# mvn clean verify -Drevision="${{ env.PREVIEW_VERSION }}" -P enable-container-tests | |
# disable container tests until they are fixed | |
mvn clean verify -Drevision="${{ env.PREVIEW_VERSION }}" | |
- name: Setup docker buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: docker hub login | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: docker test build | |
uses: docker/[email protected] | |
with: | |
context: . | |
file: Dockerfile | |
pull: true | |
push: false | |
load: true | |
tags: ${{ env.DOCKER_TAGS }} | |
- name: sanity check docker image | |
run: | | |
docker run --rm nosqlbench/nosqlbench:${{ env.PREVIEW_VERSION }} --version | |
- name: bundle artifacts | |
run: | | |
pwd | |
ls -l | |
mkdir staging | |
cp nb5/target/nb5.jar nb5/target/nb5 staging | |
- name: upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: binaries | |
path: staging | |
# - name: generate javadoc | |
# run: mvn javadoc:aggregate-jar | |
# continue-on-error: false | |
# | |
# - name: upload javadoc | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: javadoc | |
# path: target/nosqlbench-*-javadoc.jar | |
- name: prepare release summary | |
id: prepare_summary | |
run: | | |
#summary=$(scripts/release-notes.sh) | |
summary=$(cat PREVIEW_NOTES.md) | |
summary="${summary//'%'/'%25'}" | |
summary="${summary//$'\n'/'%0A'}" | |
summary="${summary//$'\r'/'%0D'}" | |
echo "release_summary=$summary" >> $GITHUB_STATE | |
- name: bump minor version | |
run: | | |
scripts/bump-minor-version | |
- name: docker push to hub | |
uses: docker/[email protected] | |
with: | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
file: Dockerfile | |
pull: true | |
push: true | |
tags: ${{ env.DOCKER_TAGS }} | |
# https://github.com/softprops/action-gh-release | |
- name: create github release | |
uses: softprops/[email protected] | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
# body: ${{ steps.prepare_summary.outputs.release_summary }} | |
# body_path: PREVIEW_NOTES.md | |
draft: false | |
prerelease: true | |
generate_release_notes: true | |
name: Preview ${{ env.PREVIEW_VERSION }} | |
fail_on_unmatched_files: true | |
tag_name: ${{ env.PREVIEW_VERSION }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
files: | | |
nb5/target/nb5 | |
nb5/target/nb5.jar | |
# - name: create github release | |
# id: create_github_release | |
# uses: actions/create-release@v1 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# with: | |
# tag_name: ${{ env.PREVIEW_VERSION }} | |
# release_name: Release ${{ env.PREVIEW_VERSION }} | |
# draft: false | |
# prerelease: true | |
# body: ${{ steps.prepare_summary.outputs.release_summary }} | |
# | |
# - name: upload nb.jar to github release | |
# id: upload-nb-jar | |
# uses: actions/upload-release-asset@v1 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# with: | |
# upload_url: ${{ steps.create_github_release.outputs.upload_url }} | |
# asset_path: nb5/target/nb5.jar | |
# asset_name: nb5.jar | |
# asset_content_type: application/octet-stream | |
# | |
# - name: upload nb binary to github release | |
# id: upload-nb-binary | |
# uses: actions/upload-release-asset@v1 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# with: | |
# upload_url: ${{ steps.create_github_release.outputs.upload_url }} | |
# asset_path: nb5/target/nb5 | |
# asset_name: nb5 | |
# asset_content_type: application/octet-stream | |
# - name: Archive Test Results | |
# if: always() | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: test-results | |
# path: | | |
# [a-zA-Z]**/logs/* | |
# This triggers a preview build by cascading the tag to the builddocs repo. | |
# The builddocs repo then pushes to preview or release depending on the tag. | |
preview-docs: | |
needs: preview-build | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: import env vars | |
run: | | |
echo "PREVIEW_VERSION=${{ needs.preview-build.outputs.preview_version }}" >> $GITHUB_ENV | |
echo "DOCKER_TAGS=${{ needs.preview-build.outputs.docker_tags }}" >> $GITHUB_ENV | |
- name: clone nosqlbench-build-docs | |
run: | | |
git clone https://${{secrets.NBDROID_NAME}}:${{secrets.NBDROID_TOKEN}}@github.com/nosqlbench/nosqlbench-build-docs.git nosqlbench-build-docs | |
cd nosqlbench-build-docs | |
echo "files listing" | |
find . | |
git remote set-url origin https://${{secrets.NBDROID_NAME}}:${{secrets.NBDROID_TOKEN}}@github.com/nosqlbench/nosqlbench-build-docs.git | |
git remote -v | |
- name: set CNAME | |
run: | | |
echo "builddocs.nosqlbench.io" > nosqlbench-build-docs/site/static/CNAME | |
- name: commit changes | |
run: | | |
cd nosqlbench-build-docs | |
git add exported_docs.zip | |
- name: tag-preview-build | |
run: | | |
cd nosqlbench-build-docs | |
git tag -f ${{ env.PREVIEW_VERSION }} | |
- name: push changes | |
env: | |
NBDROID_NAME: ${{ secrets.NBDROID_NAME }} | |
NBDROID_TOKEN: ${{ secrets.NBDROID_TOKEN }} | |
run: | | |
set -x | |
cd nosqlbench-build-docs | |
CHANGES=$(git status --porcelain 2>/dev/null| wc -l) | |
git push -f --tags | |
echo "push completed" |