diff --git a/.github/workflows/alpine.yml b/.github/workflows/alpine.yml index e4c38d29..3e288917 100644 --- a/.github/workflows/alpine.yml +++ b/.github/workflows/alpine.yml @@ -36,7 +36,7 @@ jobs: foreign_pr: ${{ steps.check.outputs.foreign_pr }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Retrieve tags run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* || true @@ -59,42 +59,24 @@ jobs: container: image: alpine:3.17 steps: - - name: Install packages - run: | - apk --no-cache --upgrade add build-base cmake git bash \ - autoconf boost-static boost-dev flex-dev bison make \ - binutils-dev libevent-dev acl-dev sed python3 pkgconfig \ - lz4-dev openssl-dev zlib-dev xz ninja zip unzip curl \ - libunwind-dev libdwarf-dev gflags-dev elfutils-dev \ - libevent-static openssl-libs-static lz4-static xz-dev \ - zlib-static libunwind-static acl-static tar libffi-dev \ - gdbm-dev yaml-dev yaml-static ncurses-dev ncurses-static \ - readline-dev readline-static p7zip ruby-dev gcompat \ - gettext-dev gperf brotli-dev brotli-static jemalloc-dev \ - fmt-dev xz-static clang - - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup environment - run: cat common.env alpine.env >> $GITHUB_ENV + run: cat common.env >> $GITHUB_ENV - - name: Install bundler - run: gem install bundler -v ${{ env.BUNDLER_VER }} - - - name: Tebako setup cache - uses: actions/cache@v3 + - name: Setup Tebako + uses: tamatebako/tebako/.github/actions/setup-tebako@main with: - path: ${{ env.TEBAKO_DIR }}/${{ env.DEPS }} - key: ${{ env.OS_VER }}-${{ env.CC }}-${{ hashFiles('**/common.env') }}-${{ hashFiles('**/alpine.env') }}-v${{ env.CACHE_VER }} - - - name: Install tebako - run: gem install tebako + cache: build + cache_ver: ${{ env.CACHE_VER }} + cache_path: ${{ env.TEBAKO_DIR }} + bundler_version: ${{ env.BUNDLER_VER }} - name: package metanorma run: make build/bin/metanorma-linux-musl-x86_64 - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: metanorma-linux-musl-x86_64 path: build/bin/metanorma-linux-musl-x86_64 @@ -128,20 +110,20 @@ jobs: matrix: ${{ fromJson(needs.build-matrix.outputs.samples-matrix) }} steps: - name: Install packages - run: | + run: | apk --no-cache --upgrade add git libstdc++ xz libarchive \ openjdk17-jre-headless openssl fontconfig ttf-dejavu tar - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: rm Gemfile - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v4 with: name: metanorma-linux-musl-x86_64 path: build/bin - - uses: actions/cache@v3 + - uses: actions/cache@v4 with: path: ~/.relaton key: relaton-linux-${{ matrix.flavor.id }} @@ -150,7 +132,7 @@ jobs: - run: chmod +x build/bin/metanorma-linux-musl-x86_64 - name: Fetch samples (${{ matrix.flavor.id }}) - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: recursive repository: metanorma/mn-samples-${{ matrix.flavor.id }} @@ -166,7 +148,7 @@ jobs: -c samples/metanorma.yml \ --agree-to-terms - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: site-${{ matrix.flavor.id }} path: _site @@ -176,7 +158,7 @@ jobs: runs-on: ubuntu-latest needs: test steps: - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v4 with: name: metanorma-linux-musl-x86_64 path: build/bin diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index ecef7844..b3eecd77 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -36,7 +36,7 @@ jobs: foreign_pr: ${{ steps.check.outputs.foreign_pr }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Retrieve tags run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* || true - name: Set output variables @@ -58,42 +58,24 @@ jobs: if: "(github.event_name == 'push' && needs.prepare.outputs.head_tag == '') || github.event_name == 'pull_request' || github.event_name == 'schedule'" steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup environment - run: cat common.env macos.env >> $GITHUB_ENV + run: cat common.env >> $GITHUB_ENV - - name: Select XCode - uses: maxim-lobanov/setup-xcode@v1 + - name: Setup Tebako + uses: tamatebako/tebako/.github/actions/setup-tebako@main with: - xcode-version: ${{ env.XCODE_VERSION }} - - - name: Install packages - run: | - brew update - brew install \ - bison flex binutils double-conversion boost jemalloc fmt glog \ - gnu-sed bash ncurses libffi pkg-config - - - name: Install Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: ${{ env.RUBY_VER }} - bundler: ${{ env.BUNDLER_VER }} - - - name: Process cache - uses: actions/cache@v3 - with: - path: ${{ env.TEBAKO_DIR }}/${{ env.DEPS }} - key: ${{ env.OS_VER }}-${{ env.CC }}-${{ hashFiles('**/common.env') }}-${{ hashFiles('**/macos.env') }}-v${{ env.CACHE_VER }} - - - name: Install tebako - run: gem install tebako + cache: build + cache_ver: ${{ env.CACHE_VER }} + cache_path: ${{ env.TEBAKO_DIR }} + ruby_version: ${{ env.RUBY_VER }} + bundler_version: ${{ env.BUNDLER_VER }} - name: package metanorma run: make build/bin/metanorma-darwin-x86_64 - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: metanorma-darwin-x86_64 path: build/bin/metanorma-darwin-x86_64 @@ -122,25 +104,25 @@ jobs: fail-fast: false matrix: ${{ fromJson(needs.build-matrix.outputs.samples-matrix) }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: rm Gemfile - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v4 with: name: metanorma-darwin-x86_64 path: build/bin - run: chmod a+x build/bin/metanorma-darwin-x86_64 - - uses: actions/cache@v3 + - uses: actions/cache@v4 with: path: ~/.relaton key: relaton-macos-${{ matrix.flavor.id }} restore-keys: relaton-macos-${{ matrix.flavor.id }} - name: Fetch samples (${{ matrix.flavor.id }}) - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: recursive repository: metanorma/mn-samples-${{ matrix.flavor.id }} @@ -157,7 +139,7 @@ jobs: -o site-${{ matrix.flavor.id }} \ --agree-to-terms - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: site-${{ matrix.flavor.id }} path: site-${{ matrix.flavor.id }} @@ -167,7 +149,7 @@ jobs: runs-on: macos-11 needs: test steps: - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v4 with: name: metanorma-darwin-x86_64 path: build/bin diff --git a/.github/workflows/release_tag.yml b/.github/workflows/release_tag.yml index 33d6eb65..9c75f9f7 100644 --- a/.github/workflows/release_tag.yml +++ b/.github/workflows/release_tag.yml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest needs: prepare steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: token: ${{ secrets.METANORMA_CI_PAT_TOKEN }} diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index 39de6cb9..ff40f885 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -36,7 +36,7 @@ jobs: foreign_pr: ${{ steps.check.outputs.foreign_pr }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Retrieve tags run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* || true @@ -59,45 +59,26 @@ jobs: if: "(github.event_name == 'push' && needs.prepare.outputs.head_tag == '') || github.event_name == 'pull_request' || github.event_name == 'schedule'" steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup environment - run: cat common.env ubuntu.env >> $GITHUB_ENV + run: cat common.env >> $GITHUB_ENV - # ---------- Start of tebako prerequisites - - name: Install packages - run: | - sudo apt-get -y update - sudo apt-get -y install \ - binutils-dev libevent-dev acl-dev libfmt-dev libjemalloc-dev \ - libdouble-conversion-dev libiberty-dev liblz4-dev liblzma-dev libssl-dev \ - libboost-filesystem-dev libboost-program-options-dev libboost-system-dev \ - libboost-iostreams-dev libboost-date-time-dev libboost-context-dev \ - libboost-regex-dev libboost-thread-dev libbrotli-dev libunwind-dev \ - libdwarf-dev libelf-dev libgoogle-glog-dev libffi-dev libgdbm-dev \ - libyaml-dev libncurses-dev libreadline-dev libutfcpp-dev - - - name: Install Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: ${{ env.RUBY_VER }} - bundler: ${{ env.BUNDLER_VER }} - - - name: Tebako setup cache - uses: actions/cache@v3 + - name: Setup Tebako + uses: tamatebako/tebako/.github/actions/setup-tebako@main with: - path: ${{ env.TEBAKO_DIR }}/${{ env.DEPS }} - key: ${{ env.OS_VER }}-${{ env.CC }}-${{ hashFiles('**/common.env') }}-${{ hashFiles('**/ubuntu.env') }}-v${{ env.CACHE_VER }} - - - name: Install tebako - run: sudo gem install tebako + cache: build + cache_ver: ${{ env.CACHE_VER }} + cache_path: ${{ env.TEBAKO_DIR }} + ruby_version: ${{ env.RUBY_VER }} + bundler_version: ${{ env.BUNDLER_VER }} - name: Package metanorma run: | make build/bin/metanorma-linux-gnu-x86_64 mv -T build/bin/metanorma-linux-gnu-x86_64 build/bin/metanorma-linux-x86_64 - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: metanorma-linux-x86_64 path: build/bin/metanorma-linux-x86_64 @@ -127,16 +108,16 @@ jobs: matrix: ${{ fromJson(needs.build-matrix.outputs.samples-matrix) }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - run: rm Gemfile - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v4 with: name: metanorma-linux-x86_64 path: build/bin - - uses: actions/cache@v3 + - uses: actions/cache@v4 with: path: ~/.relaton key: relaton-linux-${{ matrix.flavor.id }} @@ -145,7 +126,7 @@ jobs: - run: chmod +x build/bin/metanorma-linux-x86_64 - name: Fetch samples (${{ matrix.flavor.id }}) - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: recursive repository: metanorma/mn-samples-${{ matrix.flavor.id }} @@ -161,7 +142,7 @@ jobs: -c samples/metanorma.yml \ --agree-to-terms - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: site-${{ matrix.flavor.id }} path: _site @@ -171,7 +152,7 @@ jobs: runs-on: ubuntu-latest needs: test steps: - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v4 with: name: metanorma-linux-x86_64 path: build/bin diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 71c463e5..9fa3356b 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -36,7 +36,7 @@ jobs: foreign_pr: ${{ steps.check.outputs.foreign_pr }} steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Retrieve tags run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* || true - name: Set output variables @@ -57,7 +57,7 @@ jobs: needs: prepare if: "(github.event_name == 'push' && needs.prepare.outputs.head_tag == '') || github.event_name == 'pull_request'" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: | gem -v @@ -71,7 +71,7 @@ jobs: with: ruby-version: '3.1' - - uses: nick-invision/retry@v2 + - uses: nick-invision/retry@v3 with: polling_interval_seconds: 5 timeout_minutes: 5 @@ -81,8 +81,10 @@ jobs: - run: | %ChocolateyInstall%\bin\make.exe -f Makefile.win build build/metanorma.exe shell: cmd + env: + BUNDLE_DEBUG: true - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: metanorma-windows path: build/metanorma.exe @@ -105,23 +107,23 @@ jobs: fail-fast: false matrix: ${{ fromJson(needs.build-matrix.outputs.samples-matrix) }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: Remove-Item Gemfile - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v4 with: name: metanorma-windows path: build - - uses: actions/cache@v3 + - uses: actions/cache@v4 with: path: ~/.relaton key: relaton-windows-${{ matrix.flavor.id }} restore-keys: relaton-windows-${{ matrix.flavor.id }} - name: Fetch samples (${{ matrix.flavor.id }}) - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: submodules: recursive repository: metanorma/mn-samples-${{ matrix.flavor.id }} @@ -134,7 +136,7 @@ jobs: run: | build\metanorma.exe site generate samples -c samples\metanorma.yml --agree-to-terms - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: site-${{ matrix.flavor.id }} path: _site @@ -144,7 +146,7 @@ jobs: runs-on: windows-latest needs: test steps: - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v4 with: name: metanorma-windows path: build diff --git a/alpine.env b/alpine.env deleted file mode 100644 index b0a4c2bb..00000000 --- a/alpine.env +++ /dev/null @@ -1,5 +0,0 @@ -CACHE_VER=04 -OS_VER=alpine-3.17 -VCPKG_FORCE_SYSTEM_BINARIES=1 -CC=clang -CXX=clang++ diff --git a/common.env b/common.env index 90b563ce..072e781e 100644 --- a/common.env +++ b/common.env @@ -3,3 +3,4 @@ TEBAKO_DIR=.archive/tebako DEPS=deps BUNDLER_VER=2.3.22 BUILD_TYPE=Release +CACHE_VER=05 diff --git a/macos.env b/macos.env deleted file mode 100644 index bddf7f37..00000000 --- a/macos.env +++ /dev/null @@ -1,5 +0,0 @@ -CACHE_VER=04 -OS_VER=macos-11.1 -CC=clang -CXX=clang++ -XCODE_VERSION=12.4 diff --git a/ubuntu.env b/ubuntu.env deleted file mode 100644 index e666b536..00000000 --- a/ubuntu.env +++ /dev/null @@ -1,5 +0,0 @@ -CACHE_VER=04 -OS_VER=ubuntu-20.04 -BUNDLE_BUILD__SASSC=--enable-static-stdlib -CC=clang-12 -CXX=clang++-12