Nightly release #112
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: macos14 | |
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: | |
- name: Clean workdir | |
if: ${{ runner.os == 'macOS' }} | |
uses: kuznetsss/[email protected] | |
- 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@v4 | |
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@v4 | |
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: macos14 | |
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: | |
- name: Clean workdir | |
if: ${{ runner.os == 'macOS' }} | |
uses: kuznetsss/[email protected] | |
- uses: actions/download-artifact@v4 | |
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@v4 | |
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* | |
create_issue_on_failure: | |
needs: [build, run_tests, nightly_release] | |
if: ${{ always() && contains(needs.*.result, 'failure') }} | |
runs-on: ubuntu-20.04 | |
permissions: | |
contents: write | |
issues: write | |
steps: | |
- name: Create an issue | |
uses: ./.github/actions/create_issue | |
env: | |
GH_TOKEN: ${{ github.token }} | |
with: | |
title: 'Nightly release failed 🌙' | |
body: > | |
Nightly release failed: | |
Workflow: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}/ |