blob: 3b48e03d5ead7eee925b41a8a0555ab7d399c266 [file] [log] [blame]
Mohammed Naser19871ba2023-03-27 22:38:39 +00001# Copyright (c) 2023 VEXXHOST, Inc.
2#
3# Licensed under the Apache License, Version 2.0 (the "License"); you may
4# not use this file except in compliance with the License. You may obtain
5# a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12# License for the specific language governing permissions and limitations
13# under the License.
14
15name: manila
16
17on:
18 pull_request:
19 paths:
20 - .github/workflows/manila.yml
21 push:
22 branches:
23 - main
24 paths:
25 - .github/workflows/manila.yml
Mohammed Naser1ec06f72023-03-28 02:56:40 +000026 release:
27 types:
28 - published
Mohammed Naser19871ba2023-03-27 22:38:39 +000029 workflow_dispatch:
30
31jobs:
32 build-image:
33 runs-on: ubuntu-latest
34 steps:
35 - name: Checkout project
renovate[bot]e0441322024-05-19 00:14:14 +020036 uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4
Mohammed Naser19871ba2023-03-27 22:38:39 +000037 with:
38 fetch-depth: 0
39
40 - name: Install dependencies
41 run: |
ricolina586ec52023-06-02 00:14:44 +080042 sudo apt-get update
Mohammed Naser19871ba2023-03-27 22:38:39 +000043 sudo apt-get install -y debootstrap qemu-utils
44 pipx install diskimage-builder==3.28.0
45 pipx install python-swiftclient
Mohammed Naser2607b552023-03-27 23:39:42 +000046 pipx inject python-swiftclient python-keystoneclient
Mohammed Naser19871ba2023-03-27 22:38:39 +000047 pipx install poetry
48 poetry self add "poetry-dynamic-versioning[plugin]"
49
50 - name: Clone openstack/manila-image-elements
renovate[bot]e0441322024-05-19 00:14:14 +020051 uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4
Mohammed Naser19871ba2023-03-27 22:38:39 +000052 with:
53 repository: openstack/manila-image-elements
54 path: manila-image-elements
55
56 - name: Cache DIB_IMAGE_CACHE
renovate[bot]d7d88c02024-04-03 11:31:34 -040057 uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
Mohammed Naser19871ba2023-03-27 22:38:39 +000058 with:
59 path: ~/.cache/image-create
60 key: dib-image-cache
61
62 - name: Build image
Mohammed Naserd88e8312023-03-28 02:22:46 +000063 run: disk-image-create -o manila-$(poetry version --short).qcow2 vm manila-ubuntu-minimal dhcp-all-interfaces manila-ssh ubuntu-nfs ubuntu-cifs
Mohammed Naser19871ba2023-03-27 22:38:39 +000064 env:
65 ELEMENTS_PATH: manila-image-elements/elements
66
67 - name: Publish image
Mohammed Naser1ec06f72023-03-28 02:56:40 +000068 if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event_name == 'release'
Mohammed Naser19871ba2023-03-27 22:38:39 +000069 run: |
70 swift post -r '.r:*,.rlistings' atmosphere-images
71 swift upload atmosphere-images manila-$(poetry version --short).qcow2
72 env:
73 OS_AUTH_URL: https://auth.vexxhost.net/v3
74 OS_REGION_NAME: ca-ymq-1
75 OS_USER_DOMAIN_NAME: Default
76 OS_USERNAME: ${{ secrets.OS_USERNAME }}
77 OS_PASSWORD: ${{ secrets.OS_PASSWORD }}
78 OS_PROJECT_DOMAIN_NAME: Default
79 OS_PROJECT_NAME: ${{ secrets.OS_PROJECT_NAME }}