Nightly release #40
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: Nightly release | |
on: | |
schedule: | |
- cron: '0 5 * * 1-5' | |
workflow_dispatch: | |
jobs: | |
build: | |
name: Build clio | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: macOS | |
build_type: Release | |
- os: heavy | |
build_type: Release | |
container: | |
image: rippleci/clio_ci:latest | |
- os: heavy | |
build_type: Debug | |
container: | |
image: rippleci/clio_ci:latest | |
runs-on: [self-hosted, "${{ matrix.os }}"] | |
container: ${{ matrix.container }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Prepare runner | |
uses: ./.github/actions/prepare_runner | |
with: | |
disable_ccache: true | |
- name: Setup conan | |
uses: ./.github/actions/setup_conan | |
id: conan | |
- name: Run conan and cmake | |
uses: ./.github/actions/generate | |
with: | |
conan_profile: ${{ steps.conan.outputs.conan_profile }} | |
conan_cache_hit: ${{ steps.restore_cache.outputs.conan_cache_hit }} | |
build_type: ${{ matrix.build_type }} | |
- name: Build Clio | |
uses: ./.github/actions/build_clio | |
- name: Strip tests | |
run: strip build/clio_tests | |
- name: Upload clio_tests | |
uses: actions/upload-artifact@v3 | |
with: | |
name: clio_tests_${{ runner.os }}_${{ matrix.build_type }} | |
path: build/clio_tests | |
- name: Compress clio_server | |
shell: bash | |
run: | | |
cd build | |
tar czf ./clio_server_${{ runner.os }}_${{ matrix.build_type }}.tar.gz ./clio_server | |
- name: Upload clio_server | |
uses: actions/upload-artifact@v3 | |
with: | |
name: clio_server_${{ runner.os }}_${{ matrix.build_type }} | |
path: build/clio_server_${{ runner.os }}_${{ matrix.build_type }}.tar.gz | |
run_tests: | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: macOS | |
build_type: Release | |
- os: heavy | |
build_type: Release | |
- os: heavy | |
build_type: Debug | |
runs-on: [self-hosted, "${{ matrix.os }}"] | |
steps: | |
- uses: actions/download-artifact@v3 | |
with: | |
name: clio_tests_${{ runner.os }}_${{ matrix.build_type }} | |
- name: Run clio_tests | |
run: | | |
chmod +x ./clio_tests | |
./clio_tests --gtest_filter="-BackendCassandraBaseTest*:BackendCassandraTest*:BackendCassandraFactoryTestWithDB*" | |
nightly_release: | |
needs: run_tests | |
runs-on: ubuntu-20.04 | |
env: | |
GH_REPO: ${{ github.repository }} | |
GH_TOKEN: ${{ github.token }} | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v3 | |
with: | |
path: nightly_release | |
- name: Prepare files | |
shell: bash | |
run: | | |
cp ${{ github.workspace }}/.github/workflows/nightly_notes.md "${RUNNER_TEMP}/nightly_notes.md" | |
cd nightly_release | |
rm -r clio_tests* | |
for d in $(ls); do | |
archive_name=$(ls $d) | |
mv ${d}/${archive_name} ./ | |
rm -r $d | |
sha256sum ./$archive_name > ./${archive_name}.sha256sum | |
cat ./$archive_name.sha256sum >> "${RUNNER_TEMP}/nightly_notes.md" | |
done | |
echo '```' >> "${RUNNER_TEMP}/nightly_notes.md" | |
- name: Remove current nightly release and nightly tag | |
shell: bash | |
run: | | |
gh release delete nightly --yes || true | |
git push origin :nightly || true | |
- name: Publish nightly release | |
shell: bash | |
run: | | |
gh release create nightly --prerelease --title "Clio development (nightly) build" \ | |
--target $GITHUB_SHA --notes-file "${RUNNER_TEMP}/nightly_notes.md" \ | |
./nightly_release/clio_server* |